bzoj [POI2005]Kos-Dicing 二分+网络流
[POI2005]Kos-Dicing
Time Limit: 5 Sec Memory Limit: 64 MB
Submit: 1835 Solved: 661
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 2
1 3
1 4
1 2
Sample Output
HINT
一场比赛向x,y各连流量为1的边,然后二分z,所有点向T连z的边,然后最大流一
下,调整一下就好了。
- #include<iostream>
- #include<cstdio>
- #include<cstdlib>
- #include<cstring>
- #define inf 0x7fffffff
- using namespace std;
- inline int read()
- {
- int x=,f=;char ch=getchar();
- while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
- while(ch>=''&&ch<=''){x*=;x+=ch-'';ch=getchar();}
- return x*f;
- }
- int T;
- int n,m,cnt,ans,x[],y[];
- int head[],h[],q[],cur[];
- struct data{int to,next,v;}e[];
- void ins(int u,int v,int w)
- {e[++cnt].to=v;e[cnt].next=head[u];e[cnt].v=w;head[u]=cnt;}
- void insert(int u,int v,int w)
- {ins(u,v,w);ins(v,u,);}
- bool bfs()
- {
- int t=,w=;
- for(int i=;i<=T;i++)h[i]=-;
- q[]=;h[]=;
- while(t!=w)
- {
- int now=q[t];t++;
- for(int i=head[now];i;i=e[i].next)
- if(e[i].v&&h[e[i].to]==-)
- {
- h[e[i].to]=h[now]+;
- q[w++]=e[i].to;
- }
- }
- if(h[T]==-)return ;
- return ;
- }
- int dfs(int x,int f)
- {
- if(x==T)return f;
- int w,used=;
- for(int i=cur[x];i;i=e[i].next)
- {
- if(e[i].v&&h[e[i].to]==h[x]+)
- {
- w=f-used;
- w=dfs(e[i].to,min(e[i].v,w));
- e[i].v-=w;
- if(e[i].v)cur[x]=i;
- e[i^].v+=w;
- used+=w;if(used==f)return f;
- }
- }
- if(!used)h[x]=-;
- return used;
- }
- void dinic()
- {while(bfs()){for(int i=;i<=T;i++)cur[i]=head[i];ans+=dfs(,inf);}}
- void build(int v)
- {
- cnt=;ans=;
- memset(head,,sizeof(head));
- for(int i=;i<=n;i++)
- insert(i,T,v);
- for(int i=;i<=m;i++)
- {
- insert(,i+n,);
- insert(i+n,x[i],);
- insert(i+n,y[i],);
- }
- }
- int main()
- {
- n=read();m=read();T=n+m+;
- for(int i=;i<=m;i++)
- x[i]=read(),y[i]=read();
- int l=,r=;
- while(l<=r)
- {
- int mid=(l+r)>>;
- build(mid);
- dinic();
- if(ans==m)r=mid-;
- else l=mid+;
- }
- printf("%d",l);
- }
bzoj [POI2005]Kos-Dicing 二分+网络流的更多相关文章
- BZOJ_1532_[POI2005]Kos-Dicing_二分+网络流
BZOJ_1532_[POI2005]Kos-Dicing_二分+网络流 Description Dicing 是一个两人玩的游戏,这个游戏在Byteotia非常流行. 甚至人们专门成立了这个游戏的一 ...
- 【bzoj1532】[POI2005]Kos-Dicing 二分+网络流最大流
题目描述 Dicing 是一个两人玩的游戏,这个游戏在Byteotia非常流行. 甚至人们专门成立了这个游戏的一个俱乐部. 俱乐部的人时常在一起玩这个游戏然后评选出玩得最好的人.现在有一个非常不走运的 ...
- BZOJ 3130: [Sdoi2013]费用流 网络流+二分
3130: [Sdoi2013]费用流 Time Limit: 10 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 1230 Solved: ...
- hihoCoder 1389 Sewage Treatment 【二分+网络流+优化】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)
#1389 : Sewage Treatment 时间限制:2000ms 单点时限:2000ms 内存限制:256MB 描述 After years of suffering, people coul ...
- POJ 2455 Secret Milking Machine(搜索-二分,网络流-最大流)
Secret Milking Machine Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9658 Accepted: ...
- BZOJ_3993_[SDOI2015]星际战争_二分+网络流
BZOJ_3993_[SDOI2015]星际战争_二分+网络流 Description 3333年,在银河系的某星球上,X军团和Y军团正在激烈地作战.在战斗的某一阶段,Y军团一共派遣了N个巨型机器人进 ...
- POJ 2711 Leapin' Lizards / HDU 2732 Leapin' Lizards / BZOJ 1066 [SCOI2007]蜥蜴(网络流,最大流)
POJ 2711 Leapin' Lizards / HDU 2732 Leapin' Lizards / BZOJ 1066 [SCOI2007]蜥蜴(网络流,最大流) Description Yo ...
- 【bzoj3130】[Sdoi2013]费用流 二分+网络流最大流
题目描述 Alice和Bob做游戏,给出一张有向图表示运输网络,Alice先给Bob一种最大流方案,然后Bob在所有边上分配总和等于P的非负费用.Alice希望总费用尽量小,而Bob希望总费用尽量大. ...
- 【bzoj1822】[JSOI2010]Frozen Nova 冷冻波 计算几何+二分+网络流最大流
题目描述 WJJ喜欢“魔兽争霸”这个游戏.在游戏中,巫妖是一种强大的英雄,它的技能Frozen Nova每次可以杀死一个小精灵.我们认为,巫妖和小精灵都可以看成是平面上的点. 当巫妖和小精灵之间的直线 ...
- 【bzoj1733】[Usaco2005 feb]Secret Milking Machine 神秘的挤奶机 二分+网络流最大流
题目描述 Farmer John is constructing a new milking machine and wishes to keep it secret as long as possi ...
随机推荐
- Java进阶知识点: 枚举值
Java进阶知识点1:白捡的扩展性 - 枚举值也是对象 一.背景 枚举经常被大家用来储存一组有限个数的候选常量.比如下面定义了一组常见数据库类型: public enum DatabaseType ...
- 关于TensorFlow的GPU设置
摘自:https://blog.csdn.net/byron123456sfsfsfa/article/details/79811286 1. 在使用GPU版的TensorFlow跑程序的时候,如果 ...
- 理解Python中的__builtin__和__builtins__
以Python 2.7为例,__builtin__模块和__builtins__模块的作用在很多情况下是相同的. 但是,在Python 3+中,__builtin__模块被命名为builtins. 所 ...
- C# 生成行和列
private DataTable GetListBind() { DataTable dt = new DataTable(); try { dt.Columns.Add("1" ...
- php 安全方面面试题
1 MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化? a. 设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率.b. 选择合适的表字段数据类型和存储 ...
- hive创建外部表
Create [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] ...
- Python中函数的参数-arguments
归纳起来,Python中函数的定义形式和调用形式主要有如下几种形式: # 函数的定义形式 def func(name) # 匹配positional参数或者keyword参数 def func(nam ...
- ueditor百度编辑器的赋值方法
示例: http://ueditor.baidu.com/website/onlinedemo.html 引用代码: window.UMEDITOR_HOME_URL = $CONFIG['domai ...
- android平台蓝牙编程(转)
http://blog.csdn.net/pwei007/article/details/6015907 Android平台支持蓝牙网络协议栈,实现蓝牙设备之间数据的无线传输. 本文档描述了怎样利用a ...
- 哈希表 STL map
计数排序时我们使用一个数组来记录出现的数字的次数,而当数据范围太大时,无法建立一个那么大地数组(而且可能空间利用率很低,太浪费),此时可以改用hash table . binary search tr ...