题目分析:

裸题。怀疑$ 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 ;
}

洛谷3705 [SDOI2017] 新生舞会 【01分数规划】【KM算法】的更多相关文章

  1. [Sdoi2017]新生舞会 [01分数规划 二分图最大权匹配]

    [Sdoi2017]新生舞会 题意:沙茶01分数规划 貌似\(*10^7\)变成整数更科学 #include <iostream> #include <cstdio> #inc ...

  2. 【BZOJ4819】[Sdoi2017]新生舞会 01分数规划+费用流

    [BZOJ4819][Sdoi2017]新生舞会 Description 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴.有n个男生和n个女生参加舞会 买一个男生和一个女 ...

  3. BZOJ.4819.[SDOI2017]新生舞会(01分数规划 费用流SPFA)

    BZOJ 洛谷 裸01分数规划.二分之后就是裸最大费用最大流了. 写的朴素SPFA费用流,洛谷跑的非常快啊,为什么有人还T成那样.. 当然用二分也很慢,用什么什么迭代会很快. [Update] 19. ...

  4. P3705 [SDOI2017]新生舞会 01分数规划+费用流

    $ \color{#0066ff}{ 题目描述 }$ 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴. 有\(n\)个男生和\(n\)个女生参加舞会买一个男生和一个女生一 ...

  5. BZOJ4819: [Sdoi2017]新生舞会(01分数规划)

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1029  Solved: 528[Submit][Status][Discuss] Descripti ...

  6. BZOJ_4819_[Sdoi2017]新生舞会_01分数规划+费用流

    BZOJ_4819_[Sdoi2017]新生舞会_01分数规划+费用流 Description 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴.有n个男生和n个女生参加舞 ...

  7. 洛谷 P3705 [SDOI2017]新生舞会 解题报告

    P3705 [SDOI2017]新生舞会 题目描述 学校组织了一次新生舞会,\(Cathy\)作为经验丰富的老学姐,负责为同学们安排舞伴. 有\(n\)个男生和\(n\)个女生参加舞会买一个男生和一个 ...

  8. 4819: [Sdoi2017]新生舞会(分数规划)

    4819: [Sdoi2017]新生舞会 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1031  Solved: 530[Submit][Statu ...

  9. BZOJ-4819: 新生舞会(01分数规划+费用流)

    Description 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴.有n个男生和n个女生参加舞会 买一个男生和一个女生一起跳舞,互为舞伴.Cathy收集了这些同学之间 ...

随机推荐

  1. Item 25: 对右值引用使用std::move,对universal引用则使用std::forward

    本文翻译自<effective modern C++>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 右值引用只能绑定那些有资格被move的对象上去.如 ...

  2. BZOJ1283 序列 网络流区间覆盖模型

    就是区间覆盖模型的费用流版. 区间覆盖模型

  3. mysql索引及优化

    索引; 2.索引入门对于任何DBMS,索引都是进行优化的最主要的因素.对于少量的数据,没有合适的索引影响不是很大,但是,当随着数据量的增加,性能会急剧下降.如果对多列进行索引(组合索引),列的顺序非常 ...

  4. stark组件的增删改

      1.效果图 2.详细步骤解析 3.总结.代码   1.效果图 增 删除 改 2.详细步骤解析 1.构造增删改查url,反向解析 2.ModelForm定制add.edit页面 3.starak中的 ...

  5. Jmeter之发送请求入参必须使用编码格式、Jmeter之发送Delete请求可能入参需要使用编码格式

    这里的其中一个属性值必须要先编码再传参才可以,具体可以通过抓包分析观察:

  6. Python3练习题 001:4个数字求不重复的3位数

    #Python练习题 001:4个数字求不重复的3位数#方法一import itertoolsres = [][res.append(i[0]*100 + i[1]*10 + i[2]) for i ...

  7. Velocity ${} 和$!{}、!${}区别

    前言 在使用Velocity时经常会看到三种使用变量的情况 情况一:${name} 情况二:$!{name} 情况三:!${name} 那么三者之间到底有什么区别呢?莫慌!!!哈哈 情况一:${nam ...

  8. 3 HTTP 协议

    1 什么是HTTP 协议 HTTP (HyperText Transfer Protocol),即超文本传输协议, 17年以前互联网上应用最广泛的协议,之后所有网站都开始使用HTTPS协议(基于HTT ...

  9. Tomcat 目录结构以及基本配置

    1 Tomcat 目录层次结构 ① bin:存放启动和关闭tomcat 的脚本文件② conf: 存放配置文件 server.xml:该文件用于配置和server 相关的信息,比如tomcat 启动端 ...

  10. AngularJS双向数据绑定

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...