UVA, 753 A Plug for UNIX
来源:互联网 发布:试验数据分析 编辑:程序博客网 时间:2024/04/29 19:31
题意:
4 4个插座,下面是名称,不一定时单字母,可能是字符串
A
B
C
D
5 5个设备,名称 插头
laptop B
phone C
pager B
clock B
comb X
3 3种转换器 ,个数无限
B X
X A
X D
问最少设备不能使用的数量
4 4个插座,下面是名称,不一定时单字母,可能是字符串
A
B
C
D
5 5个设备,名称 插头
laptop B
phone C
pager B
clock B
comb X
3 3种转换器 ,个数无限
B X
X A
X D
问最少设备不能使用的数量
建立最大流,超级源点连接所有的设备,超级终点连接所有的插座,设备插座之间借转换器(个数无限,容量设置INF),其他的容量设置为1
#include <iostream>#include<vector>#include<string>#include<cstring>#include<map>using namespace std;#define N 505#define INF 9999999struct edge{ int to,cap,rev; edge(int a,int b,int c) { to=a; cap=b; rev=c; }};vector<edge>v[N];map<string,int>ma;void add_edge(int from,int to,int cap);int dfs(int a,int t,int f);int max_flow(int s,int t);int used[N];int main(){ int t; cin>>t; int first=0; while(t--) { int k=1; for(int i=0;i<=N;i++) { v[i].clear(); } ma.clear(); int n,m,r; string s,c; if(first) cout<<endl; first++; cin>>n; for(int i=0;i<n;i++) { cin>>s; if(ma[s]) add_edge(0,ma[s],1); else { ma[s]=k; add_edge(0,ma[s],1); k++; } } cin>>m; for(int i=0;i<m;i++) { cin>>c>>s; if(ma[s]) add_edge(ma[s],499,1); else { ma[s]=k; add_edge(ma[s],499,1); k++; } } cin>>r; for(int i=0;i<r;i++) { cin>>s>>c; if(!ma[s]) { ma[s]=k; k++; } if(!ma[c]) { ma[c]=k; k++; } add_edge(ma[c],ma[s],INF); } int ans=max_flow(0,499); cout<<m-ans<<endl; } return 0;}void add_edge(int from,int to,int cap){ v[from].push_back(edge(to,cap,v[to].size())); v[to].push_back(edge(from,0,v[from].size()-1));}int dfs(int a,int t,int f){ if(a==t) return f; used[a]=1; for(int i=0;i<v[a].size();i++) { edge &e=v[a][i]; if(!used[e.to]&&e.cap>0) { int d=dfs(e.to,t,min(f,e.cap)); if(d>0) { e.cap-=d; v[e.to][e.rev].cap+=d; return d; } } } return 0;}int max_flow(int s,int t){ int flow=0; while(1) { memset(used,0,sizeof(used)); int f=dfs(s,t,INF); if(f==0) return flow; flow+=f; }}
0 0
- UVA 753 - A Plug for UNIX
- UVA 753 - A Plug for UNIX
- UVA 753A Plug for UNIX
- UVa:753 A Plug for UNIX
- UVA - 753 A Plug for UNIX
- UVA, 753 A Plug for UNIX
- UVA 753 A Plug for UNIX
- UVa 753 A Plug for UNIX
- UVa 753 A Plug for UNIX
- uva 753 A Plug for UNIX
- UVA 753 A Plug for UNIX
- A Plug for UNIX UVA
- UVA 753 - A Plug for UNIX(网络流)
- UVA 753 A Plug for UNIX 网络流 插头匹配
- UVa 753 - A Plug for UNIX(最大流 | EK)
- UVA - 753 A Plug for UNIX (最大流)
- UVA - 753 A Plug for UNIX 最大流
- UVa #753 A Plug for UNIX (例题11-7)
- 230的16进制
- VC2013生成的程序兼容WindowsXP操作系统
- iOS UISearchController使用
- CSS 入门
- 15 电气 2012 十进制化16进制 官方化法
- UVA, 753 A Plug for UNIX
- 十进制改为十六进制
- bootstrap-datepicker 位置错误问题
- android之MVP模式(一)
- 【Eclipse+PyDev】字体、颜色和背景的个性化设置
- Java分布式应用技术架构介绍
- html5新增的元素类型
- 霍夫曼树 编码
- Web_Http同步和异步请求区别