poj 1087 A Plug for UNIX
来源:互联网 发布:mac怎么隐藏照片 编辑:程序博客网 时间:2024/06/07 21:58
#include<iostream>
#include<map>
#include<string>
#include<queue>
using namespace std;
int nReceptacle,nDevice,nType,flag,res,node;
int arr[600][600];
int pre[600];
int flow[600][600];
map<string,int> PR;
void Init()
{
int i,j;//u,v,w,
char str1[25],str2[25];
//freopen("a.txt","r",stdin);
memset(arr,0,sizeof(arr));
cin>>nReceptacle;
//flag=0;
//res=0;
node=2;
//输入Receptacle
for(i=0;i<nReceptacle;++i)
{
cin>>str1;
if(!PR[str1])
PR[str1]=node++;
arr[0][PR[str1]]++;
}
cin>>nDevice;
for(i=0;i<nDevice;++i)
{
cin>>str1>>str2;
if(!PR[str2])
PR[str2]=node++;
arr[PR[str2]][1]++;
}
cin>>nType;
for(i=0;i<nType;++i)
{
cin>>str1>>str2;
if(!PR[str1])
PR[str1]=node++;
if(!PR[str2])
PR[str2]=node++;
arr[PR[str2]][PR[str1]]=INT_MAX;
}
}
int Edmods_Karp()
{
int d[1000];//d是增广路长度,pre记录前驱
int i,j;
memset(flow,0,sizeof(flow));
while(true)
{
memset(pre,-1,sizeof(pre));
d[0]=0x7fffffff;
queue<int> que;
que.push(0);
while(!que.empty() && pre[1]<0)
{
int t=que.front();
que.pop();
for(i=0;i<node;++i)
{
if(pre[i]<0 && (j=arr[t][i]-flow[t][i]))
{
pre[i]=t;
que.push(i);
d[i]=min(d[t],j);
}
}
}
if(pre[1]<0) break;
for(i=1;i!=0;i=pre[i])
{
flow[pre[i]][i]+=d[1];
flow[i][pre[i]]-=d[1];
}
}
for(j=i=0;i<node;j+=flow[0][i++]);
return j;
}
int main()
{
Init();
int t=Edmods_Karp();
cout<<nDevice-t<<endl;
return 0;
}
- POJ 1087 A Plug for UNIX //MAXMATCH
- POJ 1087 A Plug for Unix
- POJ 1087A 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 isap
- POJ-1087 A Plug for UNIX
- POJ 1087 A Plug for UNIX(Dinic)
- POJ 1087 A Plug for UNIX
- POJ 1087 A Plug for UNIX 笔记
- 购票找零问题(5角,一元)
- Problem 5-Project Euter
- Problem 9-Project Euter
- 把一个字符以二进制的形式写到控制台
- poj 1094 Sorting It All Out
- poj 1087 A Plug for UNIX
- poj 1149 : PIGS
- xmllogger
- poj 1611
- poj 2524 Ubiquitous Religions
- c语言读取文件夹中的各个文件名,并删除相应的文件
- c语言中打开另一个可执行文件
- 自己制作的我们学校的校园无线网自动登录程序(C#实现)
- poj 1067取石子(威佐夫博奕)