【二分答案】【最大流】bzoj3130 [Sdoi2013]费用流
二分最大的边的cap,记作Lim。
把所有的边的cap设为min(Lim,cap[i])。
Bob一定会把单位费用加到最大边上。
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #include<queue>
- #include<cmath>
- using namespace std;
- #define EPS 0.000001
- #define N 101
- #define INF 2147483647.0
- #define M 1001
- typedef double db;
- int n,m,K,S,T;
- int v[M<<1],next[M<<1],first[N],en;
- db cap[M<<1];
- void AddEdge(int U,int V,db Cap)
- {
- v[en]=V; cap[en]=Cap; next[en]=first[U]; first[U]=en++;
- v[en]=U; cap[en]=0; next[en]=first[V]; first[V]=en++;
- }
- queue<int>q;
- int d[N],cur[N];
- bool bfs()
- {
- memset(d,-1,sizeof(int)*(n+1));
- d[S]=0; q.push(S);
- while(!q.empty())
- {
- int U=q.front(); q.pop();
- for(int i=first[U];i!=-1;i=next[i])
- if(d[v[i]]==-1&&cap[i]>EPS)
- {
- d[v[i]]=d[U]+1;
- q.push(v[i]);
- }
- }
- return d[T]!=-1;
- }
- db dfs(int U,db a)
- {
- if(U==T||a<=EPS) return a;
- db Flow=0.0,f;
- for(int &i=cur[U];i!=-1;i=next[i])
- if(d[v[i]]==d[U]+1&&(f=(dfs(v[i],min(a,cap[i]))))>EPS)
- {
- cap[i]-=f;
- cap[i^1]+=f;
- Flow+=f;
- a-=f;
- if(a<=EPS)
- break;
- }
- if(Flow<=EPS) d[U]=-1;
- return Flow;
- }
- db MaxFlow()
- {
- db Flow=0.0,tmp;
- while(bfs())
- {
- memcpy(cur,first,sizeof(int)*(n+1));
- while((tmp=dfs(S,INF))>EPS) Flow+=tmp;
- }
- return Flow;
- }
- int xs[M],ys[M],zs[M];
- int ChuShi;
- bool check(db Lim)
- {
- memset(first,-1,sizeof(int)*(n+1));
- en=0;
- for(int i=1;i<=m;++i)
- AddEdge(xs[i],ys[i],min((db)zs[i],Lim));
- db t=MaxFlow();
- return fabs(t-(db)ChuShi)<=EPS?1:0;
- }
- int main()
- {
- // freopen("bzoj3130.in","r",stdin);
- db r=0.0,l=0.0;
- scanf("%d%d%d",&n,&m,&K);
- S=1; T=n;
- memset(first,-1,sizeof(int)*(n+1));
- for(int i=1;i<=m;++i)
- {
- scanf("%d%d%d",&xs[i],&ys[i],&zs[i]);
- AddEdge(xs[i],ys[i],(db)zs[i]);
- r=max(r,(db)zs[i]);
- }
- ChuShi=(int)MaxFlow();
- while(r-l>EPS)
- {
- db mid=(l+r)/2.0;
- if(check(mid)) r=mid-EPS;
- else l=mid+EPS;
- }
- printf("%d\n%.4lf\n",ChuShi,l*(db)K);
- return 0;
- }
【二分答案】【最大流】bzoj3130 [Sdoi2013]费用流的更多相关文章
- BZOJ3130: [Sdoi2013]费用流[最大流 实数二分]
3130: [Sdoi2013]费用流 Time Limit: 10 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 960 Solved: 5 ...
- bzoj千题计划133:bzoj3130: [Sdoi2013]费用流
http://www.lydsy.com/JudgeOnline/problem.php?id=3130 第一问就是个最大流 第二问: Bob希望总费用尽量大,那肯定是把所有的花费加到流量最大的那一条 ...
- BZOJ3130 [Sdoi2013]费用流 【网络流 + 二分】
题目 Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识. 最大流问题:给定一张有向图表示运输网络,一个源点S和一个汇点T,每条边都有最大流量.一个合法的网络流方案必须满足:(1)每 ...
- BZOJ3130: [Sdoi2013]费用流(二分,最大流)
Description Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识. 最大流问题:给定一张有向图表示运输网络,一个源点S和一个汇点T,每条边都有最大流量.一个合法的网络 ...
- BZOJ3130 [Sdoi2013]费用流
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=3130 这题codevs上也有,不过数据挂了[要A得看discuss]. 题目大意: Ali ...
- 【BZOJ3130】费用流(最大流,二分)
[BZOJ3130]费用流(最大流,二分) 题面 Description Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识. 最大流问题:给定一张有向图表示运输网络,一个源点S和一 ...
- BZOJ 3130: [Sdoi2013]费用流 网络流+二分
3130: [Sdoi2013]费用流 Time Limit: 10 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 1230 Solved: ...
- P3305 [SDOI2013]费用流
题目描述 Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识. 最大流问题:给定一张有向图表示运输网络,一个源点S和一个汇点T,每条边都有最大流量. 一个合法的网络流方案必须满足: ...
- luogu P3305 [SDOI2013]费用流
题目链接 bz似乎挂了... luogu P3305 [SDOI2013]费用流 题解 dalao告诉我,这题 似乎很水.... 懂了题目大意就可以随便切了 问1,最大流 问2,二分最大边权求,che ...
随机推荐
- nc用法小记
By francis_hao Jun 30,2017 ncat:连接和重定向套接字 概要 ncat [OPTIONS...] [hostname] [port] 描述 ncat 是一个集 ...
- How to reclaim space in InnoDB when innodb_file_per_table is ON
When innodb_file_per_table is OFF and all data is going to be stored in ibdata files. If you drop so ...
- bzoj 4879 失控的数位板 4881 线段游戏 贪心,瞎搞
[Lydsy1705月赛]失控的数位板 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 148 Solved: 33[Submit][Status][ ...
- 解读python小练习
1.新建一个函数,判断是不是int 类型,并测试,不是抛出错误def adder(x, y):"""Return x + y if they are both integ ...
- AWS CLI command example
1.list ec2 instance-id, instance status, type, ip address, name aws ec2 describe-instances --query ' ...
- ppk和pem证书互转
首先你得去下载个putty pem:通用证书格式 ppk:为putty下面的专有格式 pem->ppk 直接通过putty下的puttygen.exe 选的Load private ke ...
- 关于控制下拉框select只读的js控制
文本框有readonly属性,直接设置:下拉框没有readonly属性,也不能通过其他属性进行只读的设置,下拉框只有disabled属性,但是这个属性设成true之后,值就获取不到了: 我在网上搜了一 ...
- 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题
通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题:用nginx来做webserver的时,上传大文件时需要特别注意client_max_body_si ...
- windows下mysql 5.7的配置全过程
这是一套在好多次的安装下总结出来的经验,包括很多种遇到的问题,查过很多资料,特此总结一下. 一.从官网下载MySQL的zip(免安装的) 解压mysql-5.7.11-winx64.zip到自己指定的 ...
- 卡片选项页面 JTabbedPane 的使用
package first; import javax.swing.*; import java.awt.*; import java.awt.event.*; class TtpDemo exten ...