poj3281】的更多相关文章

题目链接:https://vjudge.net/problem/POJ-3281 Dining Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 20017   Accepted: 8901 Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume…
题目链接:https://vjudge.net/problem/POJ-3281 题意:厨师做了F种菜各一份,D种饮料各一份,另有N头奶牛,每只奶牛只吃特定的菜和饮料,问该厨师最多能满足多少头奶牛? 思路:(图论的题是真的灵活!!)我自己做这道题时,知道要用网络流,但怎么也想不到要怎么建图,我没法解决的一个最大的问题就是没法限制每头奶牛最多只吃一份菜和一份饮料. 看了题解恍然大悟.可以为每头奶牛设立两个节点,再设立F个菜节点和D个饮料节点,以及超级源点.超级汇点各一个. 1.首先由源点向F道菜建…
Dining POJ-3281 这道题目其实也是网络流中求解最大流的一道模板题. 只要建模出来以后直接套用模板就行了.这里的建模还需要考虑题目的要求:一种食物只能给一只牛. 所以这里可以将牛拆成两个点,一个点和食物匹配,另一个点和饮料匹配.另外增加一个源点和一个汇点.最后根据题目的输入来连边就可以了.容量统一设置为1. #include<iostream> #include<cstdio> #include<cstring> #include<string>…
Dining Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 14316   Accepted: 6491 Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no others. Farmer John has cooked fabulo…
题目链接 题意:有F种食物,D种饮料N头奶牛,只能吃某种食物和饮料(而且只能吃特定的一份) 一种食物被一头牛吃了之后,其余牛就不能吃了第一行有N,F,D三个整数接着2-N+1行代表第i头牛,前面两个整数是Fi与Di(食物与饮料的种类数量),接着是食物的种类与饮料的种类要求输出最多分配能够满足的牛的数量 参考北理大神博客 分析:本想最大匹配搞,然后发现牛不仅要匹配食物还要匹配饮料. 最大流拆点构图, 食物 - 牛- 饮料,但是由于一个牛只能选择一个食物和一个饮料,也就是说牛这个节点有限制,最大就是…
非常非常经典的构图 有二分图学习基础的话,很容易想到这是一个“三分图”的匹配问题 我们将牛,food,drink作为点 为了方便,我们将牛放在中间,每头牛的出边指向drink种类,入边由food指入 建立超级源点指向所有food,超级汇点指向所有drink, 要满足最多的牛,也就是求一个最大流 但注意,如果这样求最大流的话,会经过牛点不止一次(因为牛会有多个入边和多个出边) 所以我们考虑将牛点拆为两个点,中间流量为1,这样就能保证牛只经过1次了 ; ..,..] of longint;    …
题意:有f种菜,d种饮品,每个牛有喜欢的一些菜和饮品,每种菜只能被选一次,饮品一样,问最多能使多少头牛享受自己喜欢的饮品和菜 分析:建边的时候,把牛拆成两个点,出和入 1,源点向每种菜流量为1 2,每种菜连所有喜欢这道菜的牛的入点,流量1 3,每头牛的入点和出点,流量为1 4,每头牛的出点连所有它喜欢的饮品,流量为1 5,每种饮品连汇点,流量为1 然后最大流是答案,这个题一定要拆点,因为一头牛只吃一次 注:模板采用的是LRJ大白书上的模板(其实这题和HDU 4292是一样的) #include…
传送门:Dining 题意:一些牛,一些食物,一些饮料,每头牛都有其喜欢的几种食物和几种饮料,求最多能给多少头牛即找到食物又找到饮料~也就是有多少个 牛---食物---饮料 的匹配,而且满足一一匹配,每个牛,食物,或饮料都只能使用一次. 分析:如果直接源点-食物-牛-汇点这样建图,那么可能会很多份食物通过某头牛传送过去,不能保证每头牛吃一份食物,因此拆点,把每头牛拆成牛-牛,边权为1,这样就能保证每头牛只能吃一份了. #pragma comment(linker,"/STACK:10240000…
题意:有n头牛,f种食物,d种饮料,每头牛有自己喜欢的食物和饮料,问你最多能够几头牛搭配好,每种食物或者饮料只能一头牛享用: 解题思路:把牛拆点,因为流过牛的流量是由限制的,只能为1,然后,食物和牛的入点相连,牛的出点和饮料相连,求解最大流 代码: #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> #include<queue> using name…
题目大意:有F种食物,D种饮料N头奶牛,只能吃某种食物和饮料(而且只能吃特定的一份)一种食物被一头牛吃了之后,其余牛就不能吃了第一行有N,F,D三个整数接着2-N+1行代表第i头牛,前面两个整数是Fi与Di(食物与饮料的种类数量),接着是食物的种类与饮料的种类要求输出最多分配能够满足的牛的数量 题解:S-->food-->cow-->cow'-->drink-->T 切记要将牛拆点,因为每头牛只能喝一种饮料,吃一种食物. #include<cstdio> #inc…