| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
没抄模板1A:) 贴代码还算短不到2k#include <cstdio>
#include <cstring>
#define MN 105
#define MP 10
#define INF 99999999
int p, n, st[MN][MP], nn, mat[MN][MN], flow[MN][MN];
int maxflow() {
int q[MN], p[MN], m[MN], h, t, c, i, f;
while(1) {
c = h = t = 0, q[t++] = 0, m[0] = INF;
memset(p, 0, sizeof(p));
while(h < t) {
if((c = q[h++]) == 1) break;
for(i = 0; i < nn; i++) {
if(!p[i] && (f = mat[c][i]-flow[c][i]))
p[i] = c + 1, q[t++] = i, m[i] = (f<m[c])?f:m[c];
else if(!p[i] && (f = flow[i][c]))
p[i] = -c - 1, q[t++] = i, m[i] = (f<m[c])?f:m[c];
}
}
if(c != 1) break;
while(c) {
if(p[c] > 0)
flow[p[c]-1][c] += m[1], c = p[c]-1;
else
flow[c][-p[c]-1] -= m[1], c = -p[c]-1;
}
}
for(f = i = 0; i < nn; i++)
f += flow[0][i];
return f;
}
int compstate(int fr, int to) {
int i;
for(i = 0; i < p; i++)
if(st[to][i] != 2 && st[fr][i] != st[to][i])
break;
return (i == p);
}
int main() {
int i, j, k, u, v, q;
freopen("input.txt", "r", stdin);
scanf("%d%d", &p, &n);
memset(mat, 0, sizeof(mat));
for(nn = 2, k = 0; k < 2; k++)
for(j = 0; j < p; j++)
st[k][j] = k;
for(i = 1; i <= n; i++) {
scanf("%d", &q);
for(k = 0; k < 2; k++, nn++)
for(j = 0; j < p; j++)
scanf("%d", &st[nn][j]);
u = nn-2, v = nn-1, mat[u][v] = q;
if(compstate(0, u))
mat[0][u] = INF;
if(compstate(v, 1))
mat[v][1] = INF;
}
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
if(i != j && compstate(2*i+1, 2*j))
mat[2*i+1][2*j] = INF;
memset(flow, 0, sizeof(flow));
printf("%d ", maxflow());
for(k = 0, i = 3; i < nn; i += 2)
for(j = 2; j < nn; j += 2)
if(flow[i][j])
k++;
printf("%d\n", k);
for(i = 3; i < nn; i += 2)
for(j = 2; j < nn; j += 2)
if(flow[i][j])
printf("%d %d %d\n", i/2, j/2, flow[i][j]);
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator