简单构图,构造一个S流向 S,M,L,X,T,赛事 T1,T2,T2...TN流向汇点T。

代码如下:

#include <cstdio>#include <cstdlib>#include <cstring>#include <queue>#define INF 0x3f3f3f3f#define MAXN 25using namespace std;

int N, cap[40][40], flow[40][40], p[40], c[40], S = 0, T = 38;

int hash[130], maxflow;

void init(){    maxflow = 0;    memset(cap, 0, sizeof (cap));    memset(flow, 0, sizeof (flow));    memset(p, 0xff, sizeof (p));}

inline int min(int x, int y){return x < y ? x : y;}

void bfs(){int finish = 0, pos;while (!finish) {        memset(c, 0, sizeof (c));        c[S] = INF;        queue<int>q;        q.push(S);while (!q.empty()) {if (c[T]) {break;            }            pos = q.front();            q.pop();for (int i = 1; i <= T; ++i) {if (!c[i] && cap[pos][i] > flow[pos][i]) {                    c[i] = min(c[pos], cap[pos][i] - flow[pos][i]);                    p[i] = pos;                    q.push(i);                }            }        }        maxflow += c[T];if (!c[T]) {            finish = 1;continue;        }        pos = T;while (pos != 0) {            flow[p[pos]][pos] += c[T];            flow[pos][p[pos]] -= c[T];            pos = p[pos];        }    }}

int main(){char op[20], detail[5];int x;    hash['S'] = 1, hash['M'] = 2, hash['L'] = 3, hash['X'] = 4, hash['T'] = 5;while (scanf("%s", op), strcmp(op, "ENDOFINPUT")) {        init();        scanf("%d", &N);for (int i = 1; i <= N; ++i) {            scanf("%s", detail);for (int j = hash[detail[0]]; j <= hash[detail[1]]; ++j) {                cap[j][5+i] = INF; // 反向边已经清零                cap[5+i][T] = 1;            }        }for (int i = 1; i <= 5; ++i) {            scanf("%d", &x);            cap[S][i] = x;        }        scanf("%s", op);        bfs();if (maxflow == N) {            puts("T-shirts rock!");        }else {            puts("I'd rather not wear a shirt anyway...");        }    }return 0;}

转载于:https://www.cnblogs.com/Lyush/archive/2012/04/05/2433329.html

POJ-2584 T-Shirt Gumbo 最大流相关推荐

  1. POJ 2584 T-Shirt Gumbo 最大流和多重匹配

    点击打开链接 T-Shirt Gumbo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2488   Accepted: 1 ...

  2. POJ 2584 T-Shirt Gumbo 构图 最大流

    题意:acmer比赛穿的T-shirt 有 S M L X T五种型号,每个人穿的型号介于给出的两字母之间,五种 T-shirt 每种都有一定的数量, 问是否每个人都可以得到自己需要的型号 这个题.. ...

  3. POJ 2584 T-Shirt Gumbo (二分图多重最大匹配)

    题意 现在要将5种型号的衣服分发给n个参赛者,然后给出每个参赛者所需要的衣服的尺码的大小范围,在该尺码范围内的衣服该选手可以接受,再给出这5种型号衣服各自的数量,问是否存在一种分配方案使得每个选手都能 ...

  4. POJ - 2584 T-Shirt Gumbo 二分多重匹配

    题目链接 题意:二分多重匹配的裸题,与匈牙利算法不同的之前的男女匹配不同,这个题目的题意是每一个人可以选择多种型号的衣服,并且每一种衣服可以很多人穿,但是每件衣服有数量限制,问最多有多少匹配数. 我们 ...

  5. POJ 1637 Sightseeing tour(最大流)

    POJ 1637 Sightseeing tour 题目链接 题意:给一些有向边一些无向边,问能否把无向边定向之后确定一个欧拉回路 思路:这题的模型很的巧妙,转一个http://blog.csdn.n ...

  6. POJ 2135 Farm Tour (费用流)

    [题目链接] http://poj.org/problem?id=2135 [题目大意] 有一张无向图,求从1到n然后又回来的最短路 同一条路只能走一次 [题解] 题目等价于求从1到n的两条路,使得两 ...

  7. poj 1698 Alice's Chance 最大流

    题目:给出n部电影的可以在周几拍摄.总天数.期限,问能不能把n部电影接下来. 分析: 对于每部电影连上源点,流量为总天数. 对于每一天建立一个点,连上汇点,流量为为1. 对于每部电影,如果可以在该天拍 ...

  8. POJ - 3436 ACM Computer Factory(最大流+输出残余网络)

    题目链接:点击查看 题目大意:给出n个机器以及m个零件,m个零件分别代表电脑上的零件,每一个机器可以将电脑上零件的一种状态转变为另一种状态,并且每个机器都有单独的效率,现在对于每一个单独的零件,规定状 ...

  9. POJ - 1459 Power Network(网络流-最大流)

    题目链接:点击查看 题目大意:题意属实恶心,借用别的大佬的题意: 题目描述 一个电网包含一些结点(电站.消费者.调度站),这些结点通过电线连接.每个结点 uu 可能被供给 s(u) 的电能, s(u) ...

最新文章

  1. usaco Money system
  2. 每日一皮:如何用一句话让领导和同事都尴尬至极?
  3. KindEditor 在线编辑器
  4. 万能笔记本,你值得拥有;(XML)
  5. 微型计算机硬件技术基础答案,计算机硬件技术基础_万晓冬_习题
  6. C语言指针,这可能是史上最干最全的讲解啦(附代码)!!!
  7. 大学计算机网络期末重点,中南大学计算机网络期末复习重点
  8. 如何用python写数值运算_如何理解Python的数值运算?
  9. c语言malloc返回值,malloc(0)的返回值
  10. 【数据库课程设计】金融数据库设计与实现
  11. 3月15日 无损卡尔曼滤波UKF与多传感器融合
  12. 怎么添加桌面计算机快捷键,怎么添加桌面快捷方式图标,教你怎么添加桌面快捷方式图标...
  13. QT中QFile读写txt乱码问题|Windows10
  14. 一个操作系统的实现:BOOT
  15. 醍醐灌顶之-线性代数-矩阵论
  16. linux命令--mkdir 与文件权限
  17. 我的生活与程序员职业规划
  18. 金陵专转本计算机应用,“专转本”计算机应用基础试题
  19. 四甲基环四硅氧烷D4H
  20. 虚拟化和云计算之间,主要是什么关系?

热门文章

  1. win10 uwp DataContext
  2. HDU 1426 Sudoku Killer【DFS 数独】
  3. [USACO11NOV]牛的障碍Cow Steeplechase(匈牙利算法)
  4. C# 基于密钥的64位加密与解密方法(原创)
  5. Ubuntu上安装oracle java 7
  6. 29 个你必须知道的 Linux 命令
  7. jQuery中HTML的操作
  8. python中的日志操作和发送邮件
  9. 我的第一个 Mono for Android 应用
  10. 【负载均衡】揭开F5 BIG-IP的神秘面纱(一)