POJ-1698 Alice's Chance 最大流
2012-03-31 16:01
204 查看
不会sap,邻接矩阵过。
#include <cstdlib> #include <cstring> #include <cstdio> #include <queue> #define MAXN 375 #define INF 0x3f3f3f3f using namespace std; int cap[MAXN+1][MAXN+1], flow[MAXN+1][MAXN+1], N; int p[MAXN+1], c[MAXN+1]; int seq[25][15], maxflow; inline void init() { maxflow = 0; memset(cap, 0, sizeof (cap)); memset(flow, 0, sizeof (flow)); } inline int min(int a, int b) { return a < b ? a : b; } void bfs() { int finish = 0, pos; while (!finish) { memset(c, 0, sizeof (c)); // 记录推送流量 c[0] = INF; queue<int>q; q.push(0); while (!q.empty()) { if (c[MAXN]) break; pos = q.front(); q.pop(); for (int i = 0; i <= MAXN; ++i) { if (!c[i] && flow[pos][i] < cap[pos][i]) { c[i] = min(c[pos], cap[pos][i]-flow[pos][i]); p[i] = pos; q.push(i); } } } maxflow -= c[MAXN]; if (c[MAXN] == 0) { finish = 1; break; } pos = MAXN; while (pos != 0) { flow[p[pos]][pos] += c[MAXN]; flow[pos][p[pos]] -= c[MAXN]; pos = p[pos]; } } } int main() { int T; scanf("%d", &T); while (T--) { init(); scanf("%d", &N); for (int i = 0; i < N; ++i) { for (int j = 0; j < 9; ++j) { scanf("%d", &seq[i][j]); } maxflow += seq[i][7]; cap[0][i+1] = seq[i][7]; for (int j = 0; j < 7; ++j) { if (seq[i][j]) { for (int k = 0; k < seq[i][8]; ++k) { cap[i+1][k*7+N+1+j] = 1; cap[k*7+N+1+j][MAXN] = 1; } } } } bfs(); if (maxflow == 0) { puts("Yes"); } else { puts("No"); } } return 0; }
相关文章推荐
- poj 1698 Alice's Chance 最大流
- POJ 1698 Alice's Chance(最大流,构图题)
- poj 1698 Alice's Chance (最大流Dinic)
- poj 1698 Alice's Chance 【最大流 判断是否满流】
- poj1698 - Alice's Chance (最大流)
- POJ 1698 Alice's Chance
- poj1698 - Alice's Chance (最大流)
- POJ 1698 Alice's Chance(最大流)
- POJ_1698_Alice's Chance(最大流)
- POJ 1698 Alice's Chance(最大流+拆点)
- POJ1698 Alice's Chance 最大流Dinic
- poj 1698 Alice's Chance 网络流
- POJ 1698 Alice's Chance(最大流+拆点)
- POJ 1698 Alice's Chance 最大流(两种算法)or二分匹配
- POJ 1698 Alice's Chance(最大流)
- POJ-1698 Alice's Chance(最大流)
- poj 1698 Alice's Chance 拆点最大流
- poj 1698 Alice's Chance 拆点最大流
- POJ 1698 Alice's Chance 最大流
- POJ_1698_Alice's Chance