思路:

不被题目忽悠就是思路

二分一下max 判一下等不等于最大流

搞定

7 9 1

1 2 3

1 3 3

2 3 3

3 4 2

3 5 2

3 6 1

4 7 2

5 7 2

6 7 2

这里有组Bob是小数的例子

//By SiriusRen
#include <queue>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 105
#define M 2222
#define eps 1e-7
int n,m,p,xx[M],yy[M];
int first[N],vis[N],next[M],v[M],tot;
double w[M],l,r,Ans,zz[M];
void Add(int x,int y,double z){w[tot]=z,v[tot]=y,next[tot]=first[x],first[x]=tot++;}
void add(int x,int y,double z){Add(x,y,z),Add(y,x,0);}
void init(){memset(first,-1,sizeof(first)),tot=0;}
bool tell(){
memset(vis,-1,sizeof(vis)),vis[1]=0;
queue<int>q;q.push(1);
while(!q.empty()){
int t=q.front();q.pop();
for(int i=first[t];~i;i=next[i])
if(w[i]>eps&&vis[v[i]]==-1)
vis[v[i]]=vis[t]+1,q.push(v[i]);
}return ~vis[n];
}
double zeng(int x,double y){
if(x==n)return y;
double r=0;
for(int i=first[x];~i&&y>r;i=next[i])
if(w[i]>eps&&vis[v[i]]==vis[x]+1){
double t=zeng(v[i],min(y-r,w[i]));
w[i]-=t,w[i^1]+=t,r+=t;
}
if(r<eps)vis[x]=-1;
return r;
}
double flow(){
double tmp,ans=0;
while(tell())while((tmp=zeng(1,1000000.0))>eps)ans+=tmp;
return ans;
}
bool check(double mid){
init();
for(int i=1;i<=m;i++)
add(xx[i],yy[i],min(zz[i],mid));
double tmp=flow();
return Ans-tmp<eps;
}
int main(){
init(),scanf("%d%d%d",&n,&m,&p);
for(int i=1;i<=m;i++)
scanf("%d%d%lf",&xx[i],&yy[i],&zz[i]),add(xx[i],yy[i],zz[i]);
Ans=r=flow();
while(r-l>eps){
double mid=(l+r)/2;
if(check(mid))r=mid;
else l=mid;
}
printf("%d\n%lf\n",(int)Ans,l*p);
}
/*
7 9 1
1 2 3
1 3 3
2 3 3
3 4 2
3 5 2
3 6 1
4 7 2
5 7 2
6 7 2 */

BZOJ 3130 二分+网络流的更多相关文章

  1. BZOJ 1305 二分+网络流

    思路: 建图我根本没有想到啊--. (我是不会告诉你我借鉴了一下题解的思路) 把每个人拆成喜欢的和不喜欢的点 男 喜欢 向 男 不喜欢 连 边权为k的边 如果男喜欢女 那么 男喜欢向 女喜欢 连 1 ...

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

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

  3. BZOJ 3130 [Sdoi2013]费用流 ——网络流

    [题目分析] 很容易想到,可以把P放在流量最大的边上的时候最优. 所以二分网络流,判断什么时候可以达到最大流. 流量不一定是整数,所以需要实数二分,整数是会WA的. [代码] #include < ...

  4. hihoCoder 1389 Sewage Treatment 【二分+网络流+优化】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)

    #1389 : Sewage Treatment 时间限制:2000ms 单点时限:2000ms 内存限制:256MB 描述 After years of suffering, people coul ...

  5. POJ 2455 Secret Milking Machine(搜索-二分,网络流-最大流)

    Secret Milking Machine Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9658   Accepted: ...

  6. BZOJ_3993_[SDOI2015]星际战争_二分+网络流

    BZOJ_3993_[SDOI2015]星际战争_二分+网络流 Description 3333年,在银河系的某星球上,X军团和Y军团正在激烈地作战.在战斗的某一阶段,Y军团一共派遣了N个巨型机器人进 ...

  7. 【bzoj3130】[Sdoi2013]费用流 二分+网络流最大流

    题目描述 Alice和Bob做游戏,给出一张有向图表示运输网络,Alice先给Bob一种最大流方案,然后Bob在所有边上分配总和等于P的非负费用.Alice希望总费用尽量小,而Bob希望总费用尽量大. ...

  8. 【bzoj1822】[JSOI2010]Frozen Nova 冷冻波 计算几何+二分+网络流最大流

    题目描述 WJJ喜欢“魔兽争霸”这个游戏.在游戏中,巫妖是一种强大的英雄,它的技能Frozen Nova每次可以杀死一个小精灵.我们认为,巫妖和小精灵都可以看成是平面上的点. 当巫妖和小精灵之间的直线 ...

  9. 【bzoj1733】[Usaco2005 feb]Secret Milking Machine 神秘的挤奶机 二分+网络流最大流

    题目描述 Farmer John is constructing a new milking machine and wishes to keep it secret as long as possi ...

随机推荐

  1. VC6.0VB6.0 Scratch等软件

    VC6.0VB6.0 Scratch等软件 http://pan.baidu.com/s/1nv4hJrb

  2. chrome控制台常用技巧有哪些

    chrome控制台常用技巧有哪些 一.总结 一句话总结:别的里面支持的快捷键,chrome里面几乎都支持,比如sublime中的ctrl+d,其实真是一通百通,都差不多的 1.chrome如何快速切换 ...

  3. Kali linux 2016.2(Rolling)中的Metasploit如何更新与目录结构初步认识

    如何更新MSF 1.Windows平台 方法1: 运行msfupdate.bat 在msfconsole里执行命令svn update 或者 方法2:  2.unix/linux平台 方法1: 运行m ...

  4. pgpool-II在故障切换过程中是如何选举新主节点的

    在pgpool的源代码中有有一个pgpool_main.c文件,在该文件中有一个pgpool的主函数pgpoolmain控制着pgpool的运行及相关操作. libpcp_ext.h文件中定义了pgp ...

  5. QT笔记 -- (5) 实现QWidget的paintEvent函数,在widget上画背景图形

    如图,想在界面上画个弧线和直线,于是继承QWidget得到类MainContainer,并实现了paintEvent函数.然后用类MainContainer定义centralWidget. MainC ...

  6. 《Unix环境高级编程》读书笔记 第8章-进程控制

    1. 进程标识 进程ID标识符是唯一.可复用的.大多数Unix系统实现延迟复用算法,使得赋予新建进程的ID不同于最近终止所使用的ID ID为0的进程通常是调度进程,也常被称为交换进程.它是内核的一部分 ...

  7. Visual Studio中C++工程的环境配置方法

    在Visual Studio的C++工程设置 1.添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录. 2.添加文件引用的lib静态库路径:工程---属性- ...

  8. js的onclick和jq的click以及on和bind的区别

    onclick和click,只能静态绑定点击事件:bind的可以一次绑定多个事件(click/onmouseover等):on可以动态的绑定事件,当页面加载完成调用on即可

  9. HDU-1083 Courses 二分图 最大匹配

    题目链接:https://cn.vjudge.net/problem/HDU-1083 题意 有一些学生,有一些课程 给出哪些学生可以学哪些课程,每个学生可以选多课,但只能做一个课程的代表 问所有课能 ...

  10. luogu P2664 树上游戏(点分治)

    点分治真是一个好东西.可惜我不会 这种要求所有路经的题很可能是点分治. 然后我就不会了.. 既然要用点分治,就想,点分治有哪些优点?它可以\(O(nlogn)\)遍历分治树的所有子树. 那么现在的问题 ...