poj 1149经典网络流构图】的更多相关文章

题意:m个猪圈,n个客户,每个客户给出选则猪圈的钥匙和需要购买猪的个数,其中每次客户购买时客户选则的猪圈数量可以相互更换,问最大购买数量. 思路:以客户作为除源点汇点之外的点,然后对于每个猪圈从源点连其第一次购买的客户,容量为其猪的个数,随后链接其下一次购买的客户容量为无穷.最后每个客户与其汇点相连,数量为想要购买的个数. 一开始没想出来,其实对于每个需求,只要控制好其源点容量的进入和汇点的控制,对于其中间过程给一个无穷的容量便可作网络流了. 代码: #include<cstdio> #inc…
题目大意:是有M个猪圈,N个顾客,顾客要买猪,神奇的是顾客有一些猪圈的钥匙而主人MIRKO却没有钥匙,多么神奇?顾客可以在打开的猪圈购买任意数量的猪,只要猪圈里有足够数量的猪.而且当顾客打开猪圈后mirko就可以在打开的猪圈之间任意调整猪的数量,(顾客走了之后猪圈要关闭).问mirko怎样做能使顾客买到最多的猪 思路如下:(也是查的,具体原理和原因明天更新) 1.取超级源点和超级汇点: 2.当猪圈被第一次打开时,在源点与当前顾客之间连接一条边,容量为该猪圈的猪的头数: 3.当某个猪圈 不是被第一…
[题意] 有M个猪圈,每个猪圈里初始时有若干头猪.一开始所有猪圈都是关闭的.依 次来了N个顾客,每个顾客分别会打开指定的几个猪圈,从中买若干头猪.每 个顾客分别都有他能够买的数量的上限.每个顾客走后,他打开的那些猪圈中的 猪,都可以被任意地调换到其它开着的猪圈里,然后所有猪圈重新关上.问总共 最多能卖出多少头猪.(1 <= N <= 100, 1 <= M <= 1000) 非常好的一道网络流建模题!最大的收获就是: 在面对网络流问题时,如果一时想不出很好的构图方法,不如先构造一个…
[题意]有F种食物和D种饮料,每种食物或饮料只能供一头牛享用,且每头牛只享用一种食物和一种饮料.现在有N头牛,每头牛都有自己喜欢的食物种类列表和饮料种类列表,问最多能使几头牛同时享用到自己喜欢的食物和饮料. (1 <= F <= 100, 1 <= D <= 100, 1 <= N <= 100) [建模方法] 此题的建模方法比较有开创性.以往一般都是左边一个点集表示供应并与源相连,右边一个点集表示需求并与汇相连.现在不同了,供应有两种资源,需求仍只有一个群体,怎么办?…
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=13349 题目大意:有N个球队在同一个赛区,已知他们胜利的场数,还剩下的在赛区内的比赛数和跨赛区的比赛数的和,和在赛区内的比赛对阵矩阵.问,1号球队是否可以不小于其余球队胜利场数的最大值. 感觉大牛的思路很好:先贪心一下,让1号球队赢得所有比赛,其余球队输掉所有跨赛区的比赛.如果此时有球队比1号球队胜利场次多,显然直接输出NO.否则,对于在同一赛区的比赛,我们这样构…
#include<iostream> #include<queue> #include<cstdio> #include<cstring> using namespace std; #define INF 0xfffffff #define mMax 1010 #define nMax 110 int cap[nMax][nMax],flow[nMax][nMax]; int pre[nMax],dist[nMax]; int Edmonds_Karp(in…
A - PIGS POJ - 1149 这个题目我开始感觉很难,然后去看了一份题解,写的很好 https://wenku.baidu.com/view/0ad00abec77da26925c5b01c.html 这个总结了很多东西,可以去看看学习学习. 从这个题目可以学到的是先建出一个正确但是可能效率很低的模型出来,然后再去减少节点数量, 最后就可以解决这个题目了,这个说起来还挺简单的,但是并不是那么好做. #include <cstdio> #include <cstring>…
POJ - 1149 思路: 最大流: 代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define maxn 105 #define maxm 1005 #define maxque 200005 #define INF 0x7fffffff int n,m,val[maxm],last[maxm]…
PIGS Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 20738   Accepted: 9481 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 come t…
题意:农夫为他的 N (1 ≤ N ≤ 100) 牛准备了 F (1 ≤ F ≤ 100)种食物和 D (1 ≤ D ≤ 100) 种饮料.每头牛都有各自喜欢的食物和饮料, 而每种食物或饮料只能分配给一头牛.最多能有多少头牛可以同时得到喜欢的食物和饮料? 析:是一个经典网络流的题,建立一个超级源点,连向每种食物,建立一个超级汇点,连向每种饮料,然后把每头牛拆成两个点, 一个和食物连,一个和饮料连,最后跑一遍最大流即可. 代码如下: #pragma comment(linker, "/STACK:…