题目分析:

裸题。怀疑$ O(n^4log{n}) $跑不过,考虑Edmonds-Karp优化。

代码:

 #include<bits/stdc++.h>
using namespace std; const int maxn = ; const double eps = 1e-; int n; int a[maxn][maxn],b[maxn][maxn]; double lx[maxn],ly[maxn],c[maxn][maxn];
int inS[maxn],inT[maxn],Left[maxn];
double slack[maxn]; void read(){
scanf("%d",&n);
for(int i=;i<=n;i++) for(int j=;j<=n;j++) scanf("%d",&a[i][j]);
for(int i=;i<=n;i++) for(int j=;j<=n;j++) scanf("%d",&b[i][j]);
} int match(int now){
inS[now] = ;
for(int i=;i<=n;i++){
if(inT[i]) continue;
if(lx[now]+ly[i] - c[now][i] <= eps){
inT[i] = ;
if(!Left[i] || match(Left[i])){
Left[i] = now;
return true;
}
}else slack[i] = min(slack[i],lx[now]+ly[i]-c[now][i]);
}
return false;
} void update(){
double pp = 1e9;
for(int i=;i<=n;i++) if(!inT[i]) pp = min(pp,slack[i]);
for(int i=;i<=n;i++){
if(inS[i]) lx[i] -= pp;
if(inT[i]) ly[i] += pp;
else slack[i] -= pp;
}
} bool KM(double now){
for(int i=;i<=n;i++) for(int j=;j<=n;j++) c[i][j] = a[i][j]-now*b[i][j];
for(int i=;i<=n;i++) {
lx[i] = -1E9,ly[i] = ; Left[i] = ;
for(int j=;j<=n;j++) lx[i] = max(lx[i],c[i][j]);
}
for(int i=;i<=n;i++){
for(int j=;j<=n;j++) slack[j] = 1e9;
for(;;){
for(int j=;j<=n;j++) inS[j] = inT[j] = ;
if(match(i)) break;
update();
}
}
double ans = ;
for(int i=;i<=n;i++) ans += lx[i] + ly[i];
if(ans <) return false;
else return true;
} double divide(double l,double r){
if(r-l <= eps) return l;
double mid = (l+r)/2.0;
int flag = KM(mid);
if(flag) return divide(mid,r);
else return divide(l,mid);
} int main(){
read();
printf("%.6lf",divide(,1E4));
return ;
}

最新文章

  1. ionic中的service简单写法
  2. Jrebel6.3.3破解,配置图文教程
  3. [ 学习路线 ] 2015 前端(JS)工程师必知必会 (2)
  4. 【STL】-priority_queue的用法
  5. V9自定义分页函数
  6. android 换肤模式总结
  7. CodeForces - 61E Enemy is weak
  8. 【题解】P2922 [USACO08DEC]秘密消息Secret Message
  9. odoo 权限问题
  10. iOS 开发中字典和字符串的转换
  11. C#获取本周五日期字符串
  12. SpringBoot无废话入门03:SpringMVC支持
  13. python核心类库:urllib使用详解
  14. CSS多行文字垂直居中的两种方法
  15. webpack实现“热更新”和“热加载”(webpack3.6新增)
  16. ros service
  17. POJ 3261 Milk Patterns 【后缀数组 最长可重叠子串】
  18. html几种美丽的分割线
  19. Java加载jar文件并调用jar文件当中有参数和返回值的方法
  20. SI - 系统 - 操作系统简述 (Operating System)

热门文章

  1. Jmeter(三十七)循环控制器+交替控制器+事务控制器 完美实现接口字段参数化校验
  2. 解决CPC撰写文档报错问题“无法获取“AxforApplication”控件的窗口句柄。不支持无窗口的 ActiveX 控件”
  3. BZOJ1969 航线规划
  4. Sampling Matrix
  5. 1060D Social Circles(贪心)
  6. Chrome 浏览器的简单设置 无痕模式 暗黑模式 自定义用户目录
  7. Kettle中表输出字段和字段选择
  8. Python的web编程
  9. linux 地址解析协议 arp
  10. freemarker -include