不使用二分图匹配,使用最大流即可,设源点S与汇点T,S->食物->牛->牛->饮料->T,每条边流量为1,因为流过牛的最大流量是1,所以将牛拆成两个点。前向星,Dinic,复杂度:O(V2E)直接套用模板#include#include#include#include#include#include...
分类:
其他好文 时间:
2014-11-28 19:47:25
阅读次数:
114
POJ 3420 Quad Tiling贴瓷砖:4*N的地板上用2*1的瓷砖铺满,求所有方案数对M求余。3.4熟练掌握动态规划矩阵的幂久违地上了节课,太无聊,只好刷一题。假设S[n]表示填满n时的方案数,有S[0]=1。定义矩阵M[p][q] := 边缘p和边缘q可以拼合时取1,否则取0所谓的可以拼...
分类:
其他好文 时间:
2014-11-24 23:54:39
阅读次数:
358
POJ 3411 Paid Roads开路:N个城市间有m条单向路,分别从a到b,可以在c处交P路费,也可以直接交R路费。那么问题来了,你的挖掘机怎么开最省钱?3.4熟练掌握动态规划状态压缩DP乍一看可以Dijkstra,实际上的确可以Dijkstra。不过多了一个预交费的c,所以在遍历的时候多了一...
分类:
其他好文 时间:
2014-10-27 00:12:38
阅读次数:
146
POJ 2836 Rectangular Covering铺地板:坐标平面上有n各点,用任意大小(非零)的地板砖覆盖它们,求最省的地板砖总面积。3.4熟练掌握动态规划状态压缩DP先预处理数据,将n个点两两组合形成n * (n-1) / 2个矩形,计算每个矩形的面积和内部点个数。接着利用预处理数据来枚...
分类:
其他好文 时间:
2014-10-13 20:36:57
阅读次数:
193
在挑战程序设计竞赛中看到调用pair,就上网查了一下类型申明有两种template struct pairtypedef pairt p;//p为任意的调用起来就是p.first=..p.second=..当然,如果是是用第一种申明方式的话,还要加上pairp;这个可以和queue连用,这样的话,....
分类:
其他好文 时间:
2014-10-06 01:53:59
阅读次数:
198
2.1 截木板 【贪心法(Huffman 编码)】
方法2:优先级队列 (基于堆实现)
分类:
其他好文 时间:
2014-09-30 22:46:20
阅读次数:
125
计算机 1s 的计算能力:1000 000 次, 游刃有余; 10 000 000,勉强; 100 000 000,很悬,一般不能。
1.1 抽签
分类:
其他好文 时间:
2014-09-30 18:53:39
阅读次数:
155
这两道题都是用的尺取法。尺取法是《挑战程序设计竞赛》里讲的一种常用技巧。就是O(n)的扫一遍数组,扫完了答案也就出来了,这过程中要求问题具有这样的性质:头指针向前走(s++)以后,尾指针(t)要么不动要么也往前走。满足这种特点的就可以考虑尺取法。poj3061 比较简单,也可以用二分做,时间复杂度O...
分类:
其他好文 时间:
2014-09-25 02:11:38
阅读次数:
245
虽然题目求的是最大费用,但是我们可以通过转换就变为最小费用。用一个比最大值更的数与每个数的差作为费用值。最后处理回来就i可以了。有些人用直接每个值都乘以-1,这样更简单。 做这题,我对为什么不拆点就会错这个问题想了很久,也问了一些人。最后得出了一些知识。 在《挑战程序设计竞赛》的214页有讲...
分类:
其他好文 时间:
2014-09-18 01:57:53
阅读次数:
241
学渣乱搞系列之后缀数组 by 狂徒归来 后缀数组,其nlogn的构造方法,比较麻烦,十几个循环,基数排序?计数排序?各种排序,各种凌乱,学渣表示鸭梨很大啊!学渣从《挑战程序设计竞赛》中偷学了一点nlog2n的构造方法。字符串后缀(Suffix)是指从字符串的某个位置开始到其末...
分类:
其他好文 时间:
2014-08-23 12:30:30
阅读次数:
217