POJ1149PIGS】的更多相关文章

题意: 有m个猪圈 每个猪圈有不同数量的猪 [0, 1000]有n个顾客 每个顾客需要Bi头猪 有Ai个钥匙 能打开Ai个不同的猪圈顾客按顺序来买猪 只能买他有钥匙的猪 买完之后 这几个猪圈的猪可以相互转移 很神奇的题,建图简直太神奇~~ 建图: 每个顾客和源点的流量为与该顾客的相连的猪圈且该猪圈之前没有与其他顾客相连的猪圈的猪数量和 每个顾客到汇点的流量是该顾客需要猪的数量 每个顾客需要与上一个选相同猪圈的顾客相连 因为猪圈之间可以相互换 不用考虑不同的猪圈 /****************…
题目:http://poj.org/problem?id=1149 不把猪圈当做点,而把顾客当作点,把猪当作边权(流量): 因为猪圈中的猪可流动,所以共用一个猪圈的人互相连边: 注意应该连成链的形式,来保证先后顺序. 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; queue<int>q; ],head…
PIGS Time Limit: 1000MS   Memory Limit: 10000KB   64bit IO Format: %I64d & %I64u Submit Status Description Mirko works on a pig farm that consists of M locked pig-houses and Mirko can't unlock any pighouse because he doesn't have the keys. Customers…
传送门 貌似是最大流建图优化入门题(可惜我还是不会) 最暴力的建图当然是源点连每个猪圈然后猪圈需要拆成n个点分给每个人这个必定是跑不过的 所以我们可以进行优化 很明显没有被动过的猪圈一直是不变的可以不用拆 然后两个顾客之间开了同一扇门可以互通有无的话那么他们之间可以连一条inf的边来进行这个操作 我们发现一个人打开多个没被打开过的猪圈可以直接把这些猪圈合并起来 所以最后我们从源点连出来的是顾客! 我们把所有猪圈之间的流动全部变成了边 所以最后我们的点数是N+2个 边数最多是M条(互通有无) 就可…