poj 1087 A Plug for UNIX(最大流)
来源:互联网 发布:php redis 使用 编辑:程序博客网 时间:2024/05/01 11:19
建图:
把电器,插座,适配器这些都看作节点
构造一个超级源点和一个超级汇点
连接源点与电器,容量设为1
连接电器与插座,容量设为1
连接插座与汇点,容量设为1
连接适配器与插座,容量设为inf
在构造插座与适配器过程中,如果遇到一个没有出现过插座类型,就把这个插座作为一个新的节点加进去。
#include<iostream>#include<algorithm>#include<string.h>#include<stack>#include<map>#include<queue>#include<math.h>#include<cstdio>#define mem(a,b) memset(a,b,sizeof(a))using namespace std;const int maxn=510;const int inf=0xffffff;int c[maxn][maxn];int flow[maxn][maxn];int dist[maxn];bool vis[maxn];int maxf[maxn];int pre[maxn];int maxflow(int s,int t,int n){int f,v,u;queue<int> q;mem(flow,0);f=0;while(1){q.push(s);mem(vis,0);mem(maxf,0);vis[s]=1;maxf[s]=inf;while(!q.empty()){u=q.front();q.pop();for(int i=1;i<=n;i++){if(!vis[i] && c[u][i]-flow[u][i]>0){vis[i]=1;maxf[i]=min(maxf[u],c[u][i]-flow[u][i]);q.push(i);pre[i]=u;}}}f+=maxf[t];if(maxf[t]==0) break;for(int i=t;i!=s;i=pre[i]){flow[i][pre[i]] -= maxf[t];flow[pre[i]][i]+= maxf[t];}}return f;}int main(){int n,mm,k;int s,t;while(~scanf("%d",&n)){int cnt=3;map<string,int> m;string str,str1;s=1,t=2;mem(c,0);for(int i=1;i<=n;i++){cin>>str;m[str]=cnt;c[cnt++][t]=1;}scanf("%d",&mm);for(int i=0;i<mm;i++){cin>>str>>str1;m[str]=cnt;c[s][cnt++]=1;if(m.count(str1)==0)m[str1]=cnt++;c[m[str]][m[str1]]=1;}scanf("%d",&k);for(int i=0;i<k;i++){cin>>str>>str1;if(m.count(str)==0)m[str]=cnt++;if(m.count(str1)==0)m[str1]=cnt++;c[m[str]][m[str1]]=inf;}printf("%d\n",mm-maxflow(s,t,cnt));}return 0;}
- poj 1087 A Plug for UNIX(最大流)
- poj 1087 A Plug for UNIX(最大流)
- POJ 1087 A Plug for UNIX 最大流(建图好题)
- poj 1087 A Plug for UNIX(最大流)
- POJ 1087 A Plug for UNIX (网络最大流)
- poj 1087 A Plug for UNIX(最大流基础)
- POJ 1087 A Plug for UNIX (最大流+多源多汇)
- POJ 1087 A Plug for UNIX(最大流)
- POJ 1087 A Plug for UNIX (最大流)
- poj 1087 A Plug for UNIX(网络流最大流)
- POJ 1087 A Plug for UNIX 网络流最大流
- POJ-1087-A Plug for UNIX 网络流+最大流
- POJ 1087 A Plug for UNIX (网络流,最大流)
- POJ 1087:A Plug for UNIX(最大流)
- POJ 1087 A Plug for UNIX 最大流
- POJ 1087 A Plug for UNIX 最大流
- POJ--1087--A Plug for UNIX【Dinic】网络最大流
- POJ 1087 A Plug for UNIX(最大流)
- 策略模式(StrategyPattern)
- Hadoop新旧API的区别和联系
- 问题列表 java
- 建立英语思维
- linux网络socket 接口
- poj 1087 A Plug for UNIX(最大流)
- IE条件注释
- 投资内容简介
- 职场英语:人生道理在职场中的真义
- [sgu]Telecasting station【三分】
- 2>&1
- Android休眠唤醒机制简介(一)
- 千万级并发实现的秘密:内核不是解决方案,而是问题所在!
- win7 cisco vpn无法连接