二分最大的边的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]费用流的更多相关文章

  1. BZOJ3130: [Sdoi2013]费用流[最大流 实数二分]

    3130: [Sdoi2013]费用流 Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 960  Solved: 5 ...

  2. bzoj千题计划133:bzoj3130: [Sdoi2013]费用流

    http://www.lydsy.com/JudgeOnline/problem.php?id=3130 第一问就是个最大流 第二问: Bob希望总费用尽量大,那肯定是把所有的花费加到流量最大的那一条 ...

  3. BZOJ3130 [Sdoi2013]费用流 【网络流 + 二分】

    题目 Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识. 最大流问题:给定一张有向图表示运输网络,一个源点S和一个汇点T,每条边都有最大流量.一个合法的网络流方案必须满足:(1)每 ...

  4. BZOJ3130: [Sdoi2013]费用流(二分,最大流)

    Description Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识.    最大流问题:给定一张有向图表示运输网络,一个源点S和一个汇点T,每条边都有最大流量.一个合法的网络 ...

  5. BZOJ3130 [Sdoi2013]费用流

    AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=3130 这题codevs上也有,不过数据挂了[要A得看discuss]. 题目大意: Ali ...

  6. 【BZOJ3130】费用流(最大流,二分)

    [BZOJ3130]费用流(最大流,二分) 题面 Description Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识. 最大流问题:给定一张有向图表示运输网络,一个源点S和一 ...

  7. BZOJ 3130: [Sdoi2013]费用流 网络流+二分

    3130: [Sdoi2013]费用流 Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 1230  Solved: ...

  8. P3305 [SDOI2013]费用流

    题目描述 Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识. 最大流问题:给定一张有向图表示运输网络,一个源点S和一个汇点T,每条边都有最大流量. 一个合法的网络流方案必须满足: ...

  9. luogu P3305 [SDOI2013]费用流

    题目链接 bz似乎挂了... luogu P3305 [SDOI2013]费用流 题解 dalao告诉我,这题 似乎很水.... 懂了题目大意就可以随便切了 问1,最大流 问2,二分最大边权求,che ...

随机推荐

  1. bzoj 5093 [Lydsy1711月赛]图的价值 NTT+第二类斯特林数

    [Lydsy1711月赛]图的价值 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 245  Solved: 128[Submit][Status][D ...

  2. CI框架浅析

    CI框架浅析(全篇)     业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很 ...

  3. 栈与递归的实现(Hanoi塔问题等等)

    函数中有直接或间接地调用自身函数的语句,这样的函数称为递归函数.递归函数用 得好,可简化编程工作.但函数自己调用自己,有可能造成死循环.为了避免死循环,要 做到两点: (1) 降阶.递归函数虽然调用自 ...

  4. Linux 安装编译 FFMPEG

    资源准备: ffmpeg-3.4.tar.bz2 yasm-1.3.0.tar.gz 编译安装: 本人二进制包存放在 /opt/moudles中, 解压缩在 /opt/softwares 解包 ffm ...

  5. jquery学习之add()

    解读: add() 将元素添加到匹配元素的集合中 例1: <!DOCTYPE html> <html> <head> <style> div { wid ...

  6. Fragment里使用 PhoneGap 的 CordovaWebView

    首先说明一下为什么要使用 CordovaWebView 而不直接使用 WebView 呢?由于 Android4.4 版本之后对 WebView 做了很大的改变,具体参考 这篇文章:理解WebKit和 ...

  7. threadlocal作用

    理解:通过thread创建局部变量,每个线程可以获得该变量的副本,再每个线程中操作该副本相互之间不产生影响. 解决:数据库连接 常规一个线程连接一个数据库是没有问题的,但是在高并发的情况下,可能线程一 ...

  8. bzoj1833: [ZJOI2010]count 数字计数 && codevs1359 数字计数

    bzoj1833 codevs1359 这道题也是道数位dp 因为0有前导0这一说卡了很久 最后发现用所有位数减1~9的位数就okay.....orzczl大爷 其他就跟51nod那道统计1出现次数一 ...

  9. 【洛谷 P3306】[SDOI2013]随机数生成器 (BSGS)

    题目链接 怎么这么多随机数生成器 题意见原题. 很容易想到\(BSGS\)算法,但是递推式是\(X_{i+1}=(aX_i+b)\mod p\),这显然不是一个等比数列. 但是可以用矩阵乘法来求出第\ ...

  10. Raspberry Pi 3b+ 配置摄像头

    1.开启摄像头硬件接口 raspi-config > Interfacing Options > Camera 2.测试 raspistill -v -o test.jpg