题目分析:

裸题。怀疑$ 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. [loadrunner]通过检查点判定事务是否成功

    //检查点设置语句 //tmp在此时为临时参数  web_reg_find("SaveCount=tmp",   "Text=xxx",   LAST);   ...

  2. H5 60-浮动元素排序规则

    60-浮动元素排序规则 <!DOCTYPE html><html lang="en"><head> <meta charset=" ...

  3. adb命令集合

    1. 获取序列号: adb get-serialno 2. 查看连接计算机的设备: adb devices 3. 重启机器: adb reboot 4. 重启到bootloader,即刷机模式: ad ...

  4. hdu 4135 a到b的范围中多少数与n互质(容斥)

    Co-prime 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4135 input The first line on input contains ...

  5. Linq sum()时遇到NULL

    当使用linq求和sum()时,如果某列数据为null,就会出现异常 使用下面的语句即可解决相关问题: db.TableModel.Where(w => w.ID == ID).Select(s ...

  6. Python_socket常见的方法、网络编程的安全注意事项、socketsever模块、浏览器中在一段时间记录用户的登录验证机制

    1.socket常见的方法 socket_常见方法_服务器端 import socket from socket import SOL_SOCKET,SO_REUSEADDR sk = socket. ...

  7. 聊一聊跨域,Vue向Django请求数据的一些问题

    1.做前后端分离 前端使用Vue程序,后端使用Django配合rest-framework. 那么前端Vue通过API接口拿到数据会出现跨域的问题,JSONP只是在get中会用到的,所以这里使用cor ...

  8. Java Core - static关键字的理解

    一.基本常识 二.关于main方法 我们最常见的static方法就是main方法,至于为什么main方法必须是static的,现在就很清楚了.因为程序在执行main方法的时候没有创建任何对象,因此只有 ...

  9. 非常详细的Docker学习教程

    一.Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化平台 Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 -- Docke ...

  10. MySQL 性能调优之索引

    原文:http://bbs.landingbj.com/t-0-245452-1.html 对于索引的优化,我们第一需要找到合适的字段,第二创建索引找到合适的顺序,第三要找到合适的比例,第四是要做合适 ...