这个题目卡了好几天,每提交一次,发现一次问题,考虑问题就要这样周全,哈哈,终于过了,过了。除掉用经典最小割最大流算法,能过数据,但会超时,还超的不是一般的多,用上合并相同边算法,呵呵,秒过。这题,网上有很多解法,但就是看不明白。还是我这个好懂,好懂,好懂。刚提交了这题,这个USACO网站就抽了,上不...
分类:
其他好文 时间:
2014-09-22 14:14:42
阅读次数:
330
UVA 12125 - March of the Penguins
题目链接
题意:给定一些冰块,每个冰块上有一些企鹅,每个冰块有一个可以跳出的次数限制,每个冰块位于一个坐标,现在每个企鹅跳跃力为d,问所有企鹅能否跳到一点上,如果可以输出所有落脚冰块,如果没有方案就打印-1
思路:最大流,拆点表示冰块次数限制,然后枚举落脚冰块建图跑最大流即可
代码:
#include...
分类:
其他好文 时间:
2014-09-19 22:34:59
阅读次数:
324
题目大意:给出一个无向图,要求删除尽量少的点,使给定的2点间不再连通,并输出字典序最小的方案题型:图论-网络流此题难点在于建图,后面就是套网络流的模板.将点看成边,例如第i个点可以看成一条有向边,容量为1.如果j点和i点邻接,那么新建2条容量为无穷大的有向边,.然后应用最大流最小割定理,求最大流即为...
分类:
其他好文 时间:
2014-09-19 15:15:05
阅读次数:
232
题目大意: 在一个有向图中,求经过所有的点的圈的最短路径。 思路: 把i点拆为i和i+n两个点,源点S(2*n+1)连向i, 容量为1,边权为0。i+n连向汇点E(2*n+2),容量为1,边权为0。对于输入的边a,b,w,建立a->b+n的边,容量为1,边权为w。 然后就是用模版...
分类:
其他好文 时间:
2014-09-18 22:05:34
阅读次数:
209
UVA 10249 - The Grand Dinner
题目链接
题意:给定几队队员,几张桌子,每队有一个人数,每个桌子也有一个容量上限,要求一种安排方案,使得没有同队人坐在一个桌子上,求方案
思路:明显贪心可以搞- -, 每次往容量最多的桌子塞就可以了。。不过这题既然出在网络流这章,还是用网络流也搞了下
源点连到每队,桌子连到汇点,容量就是容量,然后每队和每个桌子相连,...
分类:
其他好文 时间:
2014-09-18 20:43:24
阅读次数:
276
题目链接:点击打开链接
题意:
给定n个队伍的得分情况,输出任意一个可行解。
n个队伍任意2个队伍 a, b 间有且仅有一场比赛。
比赛结果分4种:
1、a +3, b +0
2、a +0, b +3
3、a +2, b +1
4、a +1, b +2
我们发现其实每种结果2个队伍得分和总是3 且4种情况就是3的所有拆分和的形式。
所以我们把任意两个队伍组合成一个点。
把n个...
分类:
其他好文 时间:
2014-09-18 19:02:54
阅读次数:
270
UVA 1345 - Jamie's Contact Groups
题目链接
题意:给定一些人,每个人有一个分组,现在要每个人选一个分组,使得所有分组中最大的人数最小,问这个最小值是多少
思路:二分答案,然后利用最大流去判定,源点往每个人建一条边容量为1,每个人往各自的分组建一条边,容量为1,分组向汇点建一条边,容量为二分出来的值,这样跑一下最大流如果最大流等于n,就是能满足
...
分类:
其他好文 时间:
2014-09-18 18:50:34
阅读次数:
192
UVA 11248 - Frequency Hopping
题目链接
题意:给定一个网络,现在需要从1到N运输流量C,问是否可能,如果可能输出可能,如果不可能,再问是否能通过扩大一条边的容量使得可能,如果可以输出这些边(按u先排再按v排),如果不行输出不可能
思路:先做一遍网络流,然后每次在最小割上进行增加容量,需要两个优化,每次找流量找到>= c就可以了,然后每次修改容量,可以...
分类:
其他好文 时间:
2014-09-18 16:38:04
阅读次数:
224
UVA 10779 - Collectors Problem
题目链接
题意:每个人有一种贴图,现在第0个人要去和别人交换贴图,来保证自己的贴图尽量多,只有别人没有该种贴图,并且自己有2张以上另一种贴图才会换,问最多有几张贴图
思路:最大流,关键在于如何建模,把0号人和物品连边,容量为有的容量,然后其他人如果物品等于0的,连一条边从物品到这个人,表示能交换,然后如果物品大于1的,...
分类:
其他好文 时间:
2014-09-18 16:30:14
阅读次数:
200
题目链接:点击打开链接
题意:
给定n个人,m个终点
下面n行表示每个人可以去m个点。
每个人只能去一个点。
输出任意一个方案使得每个点至少有2个人到达。
若存在输出m行,第一个数字表示i这个点来了几个人,后面是人的点标。
思路:
建一个二部图n-m,然后m到汇点限流2,判断是否满流,若不满流就无解。
若满流则其他的人随便走。
#include
#includ...
分类:
其他好文 时间:
2014-09-18 16:29:44
阅读次数:
269