Cable TV Network, ACM/ICPC SEERC 2004, UVa1660【Dinic 最小割 拆点】
来源:互联网 发布:华为软件研发面试经验 编辑:程序博客网 时间:2024/05/16 06:10
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<vector>#include<queue>using namespace std;typedef long long ll;const int maxn = 102;int n,m;struct edge{int to,cap,next;};vector<edge> E;vector<edge> bak;int head[maxn],S,T,cur[maxn],d[maxn];const int INF = 0x3f3f3f3f;#define PB(x) push_back(x)void adde(int u,int v,int c){edge x = {v,c,head[u]};bak.PB(x);head[u] = bak.size()-1;x = {u,0,head[v]};bak.PB(x);head[v] = bak.size()-1;}bool bfs(){memset(d,0,sizeof(d));queue<int> q;q.push(S);d[S]=1;while(!q.empty()){int u = q.front();q.pop();for(int i=head[u];~i;i=E[i].next){int v = E[i].to;if(!d[v]&&E[i].cap>0){d[v] = d[u] + 1;q.push(v);}}}return d[T];}int dfs(int u,int a){if(u==T||a==0)return a;int flow = 0,f;for(int& i= cur[u];~i;i=E[i].next){edge& e = E[i];if(d[e.to]==d[u]+1&&(f=dfs(e.to,min(a,e.cap)))>0){E[i].cap-=f;E[i^1].cap+=f;a-=f;flow+=f;if(a==0)break;}}return flow;}int MaxFlow(){int flow = 0;while(bfs()){memcpy(cur,head,sizeof(head));flow+=dfs(S,INF);}return flow;}int main(void){while(~scanf("%d%d",&n,&m)){memset(head,-1,sizeof(head));bak.clear();for(int i=1;i<n;i++)adde(i,i+n,1);for(int i=0;i<m;i++){int u,v;scanf(" (%d,%d)",&u,&v);adde(u+n,v,INF);adde(v+n,u,INF);}int ans = n;S = n;for(T=1;T<n;T++){E = bak;ans = min(ans,MaxFlow());}printf("%d\n",ans);}return 0;}
1 0
- Cable TV Network, ACM/ICPC SEERC 2004, UVa1660【Dinic 最小割 拆点】
- POJ 1966 - Cable TV Network 暴力枚举+最小点割
- poj--1966[Cable TV Network] 拆点+枚举源汇求最小割
- UVA 1660 Cable TV Network [最小割] [图的连通度] [拆点]
- POJ 1966 Cable TV Network 最小割
- POJ 1966 Cable TV Network | 最小点割集、最小割
- POJ 1966 Cable TV Network 枚举最小割
- 1660 - Cable TV Network(最大流最小割)
- POJ 1966--Cable TV Network【最小割 && 枚举终点起点】
- vua 1660 Cable TV Network 最大流最小割 求割点
- poj 1966 Cable TV Network 无向图最小割
- poj1966 Cable TV Network 拆点求最小割集
- 点连通度 边连通度 最大流最小割 最小割点集 最小割边集 & POJ 1966 Cable TV Network
- Poj 1966 Cable TV Network【点连通度------最大流Dinic】
- POJ 1966 Cable TV Network (用最大流求最小割点数量)
- poj 1966 Cable TV Network 【枚举源汇 求解 无向图最小割】
- 【dinic && 拆点 && 最小割】HDU
- 【网络流~最大流】uva1660 最小点割
- java InetAddress基本使用
- Node.Js Buffer类(缓冲区)-(二)
- mac 系统下 使用 crontab 命令设置定时执行脚本,定时书写规范
- java工作日和节假日判断
- Android 动画,看完这些还不够
- Cable TV Network, ACM/ICPC SEERC 2004, UVa1660【Dinic 最小割 拆点】
- HTTP请求和响应中 中文urlEncode urlDecode编码问题
- 【css】font简写
- 演示Activity的生命周期
- Android doc|Getting Started|部分 --转载 保存数据
- Java与C/C++异构平台的本地通信(Java也可以操作硬件)
- Java——关键字final
- Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
- spring mvc中mybaits+laypage分页实现 bootstrap