(直接贪心会导致分子和分母过大)

令$S_{i}=\sum_{j=1}^{L}V_{i,j}$(即其独吞整个馕的快乐度),对第$i$个人求出$n$个位置$x_{1},x_{2},...,x_{n-1}$,使得以此划分出的$n$段中,其吃每一段的快乐度都恰为$\frac{S_{i}}{n}$

假设$j-1<x_{i}\le j$,那么$(j-x_{i})V_{j}=\sum_{k=1}^{j}V_{i}-\frac{i}{n}S$,即可得到$x_{i}$的分子和分母的范围分别为$2\times 10^{8}$和$4\times 10^{11}$,都可以存储

$x_{i}=j+\frac{\frac{i}{n}S-\sum_{k=1}^{j}V_{i}}{V_{j}}$

接下来,对于答案的$x_{i}$(从小到大枚举$i$),选择未选择的人中$x_{i}$的最小值以及对应的人即可

关于这一做法的正确性,考虑这个人的$x_{i-1}$必然不小于答案的$x_{i-1}$(否则应该选其),即成立

(分数比较时,分子乘分母的范围为$8\times 10^{19}$,可以使用__int128)

 1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 2005
4 #define ll long long
5 #define LL __int128
6 LL mul(ll x,ll y){
7 return (LL)x*y;
8 }
9 struct Frac{
10 ll x,y;
11 bool operator < (const Frac &k)const{
12 return mul(x,k.y)<mul(y,k.x);
13 }
14 Frac operator + (const Frac &k)const{
15 return Frac{x*k.y+y*k.x,y*k.y};
16 }
17 Frac operator * (const Frac &k)const{
18 return Frac{x*k.x,y*k.y};
19 }
20 }x[N][N];
21 int n,m,a[N][N],sum[N][N],vis[N],ans[N];
22 int main(){
23 scanf("%d%d",&n,&m);
24 for(int i=1;i<=n;i++)
25 for(int j=1;j<=m;j++){
26 scanf("%d",&a[i][j]);
27 sum[i][j]=sum[i][j-1]+a[i][j];
28 }
29 for(int i=1;i<=n;i++)
30 for(int j=1,k=1;j<n;j++){
31 while (Frac{sum[i][k],1}<Frac{1LL*j*sum[i][m],n})k++;
32 x[i][j]=Frac{k,1}+(Frac{1LL*j*sum[i][m],n}+Frac{-sum[i][k],1})*Frac{1,a[i][k]};
33 }
34 for(int i=1;i<=n;i++){
35 int k=0;
36 for(int j=1;j<=n;j++)
37 if ((!vis[j])&&((!k)||(x[j][i]<x[k][i])))k=j;
38 vis[k]=1,ans[i]=k;
39 if (i<n)printf("%lld %lld\n",x[k][i].x,x[k][i].y);
40 }
41 for(int i=1;i<=n;i++)printf("%d ",ans[i]);
42 }

最新文章

  1. Ibatis.net总是报:【ExecuteStoreCommand SqlParameterCollection 中已包含 SqlParameter】(转)
  2. os.path 大全
  3. java 26 - 7 网络编程之 TCP协议代码优化
  4. css flexbox水平垂直
  5. Python开发程序:选课系统
  6. Windows Server 2008 R2 创建辅助DNS服务器并接管主要DNS服务器
  7. Welcome to LED Control Wiki
  8. uva10820Send a Table
  9. php 批量替换html标签的实例代码
  10. 如何对SQL Server 2005进行设置以允许远程连接(转载)
  11. mybatis-generator-core自动生成do、mapping、dao 代码
  12. mysql 批量更新
  13. Start to write blogs 【开始写博客】
  14. Redis自学笔记:5.实践
  15. HDOJ1312 Red and black(DFS深度优先搜索)
  16. 下拉框、下拉控件之Select2
  17. virtualenv virtualenvwrapper 虚拟环境创建
  18. JVM学习(一)简介
  19. JAVA多线程17个问题
  20. ansj分词原理

热门文章

  1. HTML模板标签解析
  2. ECMA 2022 (es13) 新特性
  3. 从零入门 Serverless | SAE 的极致应用部署效率
  4. 实战经验分享:使用 PyO3 来构建你的 Python 模块
  5. java设计模式_单例模式
  6. MyBatis的框架设计
  7. Java中的函数式编程(三)lambda表达式
  8. Hadoop集群的配置(一)
  9. Codeforces Round #573 (Div. 2) D题题解
  10. 关于QGIS的插件开发(C++)