洛谷3705 [SDOI2017] 新生舞会 【01分数规划】【KM算法】
题目分析:
裸题。怀疑$ 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算法】的更多相关文章
- [Sdoi2017]新生舞会 [01分数规划 二分图最大权匹配]
[Sdoi2017]新生舞会 题意:沙茶01分数规划 貌似\(*10^7\)变成整数更科学 #include <iostream> #include <cstdio> #inc ...
- 【BZOJ4819】[Sdoi2017]新生舞会 01分数规划+费用流
[BZOJ4819][Sdoi2017]新生舞会 Description 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴.有n个男生和n个女生参加舞会 买一个男生和一个女 ...
- BZOJ.4819.[SDOI2017]新生舞会(01分数规划 费用流SPFA)
BZOJ 洛谷 裸01分数规划.二分之后就是裸最大费用最大流了. 写的朴素SPFA费用流,洛谷跑的非常快啊,为什么有人还T成那样.. 当然用二分也很慢,用什么什么迭代会很快. [Update] 19. ...
- P3705 [SDOI2017]新生舞会 01分数规划+费用流
$ \color{#0066ff}{ 题目描述 }$ 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴. 有\(n\)个男生和\(n\)个女生参加舞会买一个男生和一个女生一 ...
- BZOJ4819: [Sdoi2017]新生舞会(01分数规划)
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1029 Solved: 528[Submit][Status][Discuss] Descripti ...
- BZOJ_4819_[Sdoi2017]新生舞会_01分数规划+费用流
BZOJ_4819_[Sdoi2017]新生舞会_01分数规划+费用流 Description 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴.有n个男生和n个女生参加舞 ...
- 洛谷 P3705 [SDOI2017]新生舞会 解题报告
P3705 [SDOI2017]新生舞会 题目描述 学校组织了一次新生舞会,\(Cathy\)作为经验丰富的老学姐,负责为同学们安排舞伴. 有\(n\)个男生和\(n\)个女生参加舞会买一个男生和一个 ...
- 4819: [Sdoi2017]新生舞会(分数规划)
4819: [Sdoi2017]新生舞会 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1031 Solved: 530[Submit][Statu ...
- BZOJ-4819: 新生舞会(01分数规划+费用流)
Description 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴.有n个男生和n个女生参加舞会 买一个男生和一个女生一起跳舞,互为舞伴.Cathy收集了这些同学之间 ...
随机推荐
- 小谈UAT(验收测试)
验收测试人员的测试任务: 1.验收人员是提出需求的人员,所以对需求最为熟悉,最主要测试功能的遗漏或者多余2.系统测试人员重点在测试功能的正确性和非功能的符合性,当然也希望验收人员测试功能的正确性3.因 ...
- Kickstart Practice Round 2017---A
Problem The Constitution of a certain country states that the leader is the person with the name con ...
- Gym 101873F Plug It In(二分图匹配)
题目链接:http://codeforces.com/gym/101873/problem/F 题意:有n个插孔,m个机器,和一个插板,一个插孔可以连接一个机器,插板可以使一个插孔连接三个机器,找到最 ...
- [2019BUAA软工助教]答黄杉同学
[2019BUAA软工助教]答黄杉同学 一.答黄杉同学 011-黄衫博客 我当然不否认软件工程的各种博客是有一定作用的,但是相信大多数人对诸如例会博客并没有什么热情(不过似乎也没有什么其他方法保证团队 ...
- Vladik and Complicated Book CodeForces - 811B (思维实现)
Vladik had started reading a complicated book about algorithms containing n pages. To improve unders ...
- Java向下转型的意义
一开始学习 Java 时不重视向下转型.一直搞不清楚向下转型的意义和用途,不清楚其实就是不会,那开发的过程肯定也想不到用向下转型. 其实向上转型和向下转型都是很重要的,可能我们平时见向上转型多一点,向 ...
- python的UnboundLocalError: local variable 'xxx' referenced b
一.意思: 本地变量xxx引用前没定义. 二.错误原因 在于python没有变量的声明 , 所以它通过一个简单的规则找出变量的范围 :如果有一个函数内部的变量赋值 ,该变量被认为是本地的,所以 ...
- jmeter内存溢出解决办法
原文:http://blog.51cto.com/xqtesting/2107927 使用jmeter进行压力测试时遇到一段时间后报内存溢出outfmenmory错误,导致jmeter卡死了,先尝试在 ...
- 腾讯机试题 AcWing 603 打怪兽
题目链接:https://www.acwing.com/problem/content/605/ 题目大意: 略 分析: 用dp[i][j]表示用j元钱能在前i只怪兽上所能贿赂到的最大武力值. 有一种 ...
- vue bug & data type bug
vue bug & data type bug [Vue warn]: Invalid prop: type check failed for prop "value". ...