标签:des style blog http color io os java ar
2 1 1 2 (0,1)20 (1,0)10 (0)15 (1)20 7 2 3 13 (0,0)1 (0,1)2 (0,2)5 (1,0)1 (1,2)8 (2,3)1 (2,4)7 (3,5)2 (3,6)5 (4,2)7 (4,3)5 (4,5)1 (6,0)5 (0)5 (1)2 (3)2 (4)1 (5)4
15 6
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <algorithm> 6 #include <climits> 7 #include <vector> 8 #include <queue> 9 #include <cstdlib> 10 #include <string> 11 #include <set> 12 #include <stack> 13 #define LL long long 14 #define pii pair<int,int> 15 #define INF 0x3f3f3f3f 16 using namespace std; 17 const int maxn = 105; 18 int e[maxn][maxn],n,m,p,c,maxflow; 19 int d[maxn],q[100000],S,T,hd,tail; 20 bool bfs(){ 21 memset(d,-1,sizeof(d)); 22 d[S] = 0; 23 q[tail++] = S; 24 while(hd < tail){ 25 int u = q[hd++]; 26 for(int i = 1; i <= n; i++){ 27 if(d[i] == -1 && e[u][i] > 0){ 28 d[i] = d[u]+1; 29 q[tail++] = i; 30 } 31 } 32 } 33 return d[T] > 0; 34 } 35 int dfs(int u,int low){ 36 int a = 0; 37 if(u == T) return low; 38 for(int i = 1; i <= n; i++){ 39 if(e[u][i] > 0 && d[i] == d[u]+1 && (a = dfs(i,min(low,e[u][i])))){ 40 e[u][i] -= a; 41 e[i][u] += a; 42 return a; 43 } 44 } 45 return 0; 46 } 47 int main() { 48 char ch; 49 int u,v,w; 50 while(~scanf("%d %d %d %d",&n,&p,&c,&m)){ 51 memset(e,0,sizeof(e)); 52 for(int i = 1; i <= m; i++){ 53 cin>>ch>>u>>ch>>v>>ch>>w; 54 e[u+1][v+1] += w; 55 } 56 S = n+1; 57 T = n+2; 58 n += 2; 59 for(int i = 1; i <= p; i++){ 60 cin>>ch>>v>>ch>>w; 61 e[S][v+1] += w; 62 } 63 for(int i = 1; i <= c; i++){ 64 cin>>ch>>u>>ch>>w; 65 e[u+1][T] += w; 66 } 67 int ans = maxflow = 0; 68 while(bfs()) while(maxflow = dfs(S,INF)) ans += maxflow; 69 printf("%d\n",ans); 70 } 71 return 0; 72 }
标签:des style blog http color io os java ar
原文地址:http://www.cnblogs.com/crackpotisback/p/3969645.html