题目地址:HDU 3277这题跟这题的上一版建图方法差点儿相同,仅仅只是须要拆点。这个点拆的也非常巧妙,既限制了流量,还仅仅限制了一部分,曾经一直以为拆点会所有限制,原来也能够用来分开限制,学习了。建图方法为:建一源点与汇点,将女孩进行拆点,拆成i和i+n,将i与源点连边,权值为mid,将i与i+n...
分类:
其他好文 时间:
2014-08-26 19:34:16
阅读次数:
243
导弹拦截是一个经典问题:求一个序列的最长不上升子序列,以及求能最少划分成几组不上升子序列。第一问是经典动态规划,第二问直接的方法是最小路径覆盖, 但是二分图匹配的复杂度较高,我们可以将其转化成求最长上升子序列,其最大值即等于不上升子序列的最小划分数。这就涉及到组合数学中偏序集的 Dilworth定理...
分类:
其他好文 时间:
2014-08-26 19:31:46
阅读次数:
273
一、二分图最大匹配 定义:匹配是图中一些边的集合,且集合中任意两条边都没有公共点,所有的匹配中,边数最多的就是最大匹配。 算法:用匈牙利算法可以在O(V*E)的复杂度内求出二分图的最大匹配,具体可以看byvoid神犇的blog,讲的很详细,不过想真正完全证明这个算法,得去看组合数学。二、二分...
分类:
其他好文 时间:
2014-08-26 19:08:56
阅读次数:
208
Incircle and CircumcircleTime Limit: 2 Seconds Memory Limit: 65536 KB Special JudgeA triangle is one the basic shapes in geometry. It's a polygon with...
分类:
其他好文 时间:
2014-08-26 19:03:46
阅读次数:
201
Validate Binary Search Tree...
分类:
其他好文 时间:
2014-08-26 11:47:16
阅读次数:
198
数学
1.质数,log,二分,题设证明
2.容斥原理 错排公式
3.与一个数a互质,必然是c+ka,c为a以内与a 互质的数字。Happy 2006
4.对于任意的整数n,必然存在一个由不多于两个的数来组成的一个倍数。因为a,aa,aaa……取n+1个,则必有两个模n余数相同,相减即得n的倍数m。而m只由a、0组成。5.对于大的数字,一般用同模定理缩减规模 (a+b)%m=a%m+b%m,...
分类:
其他好文 时间:
2014-08-26 08:35:16
阅读次数:
236
C++实现二分检索算法#include #include #includeusing namespace std;void enter(int arrayin[], int n); //输入函数void asort(int arrayin[], int n); //排序函数int Search(in...
分类:
编程语言 时间:
2014-08-26 00:24:05
阅读次数:
264
题意:用二分法找出数学期望。
策略,二分。
求数学期望有两种方法,一:求出每一个数的概率,再与数相乘,最后把所有的乘积相加就好了。
二:数学期望总是与平均数相等,所以可以当做求平均数。(简单方便)
代码:...
分类:
其他好文 时间:
2014-08-25 23:00:45
阅读次数:
466
思路:这题刚开始看就知道是最小费用最大流了,因为求出最优嘛,而且要m,H要一一对应,所以不是二分图匹配就是最小费用最大流。
不过,刚开始还在想每个m与H之间的最小花费如何求,难道要用dfs搜索吗?这样想之后看了下题目给的时间是1000ms,然后就把dfs搜索m与H之间的最短距离排除了。然后想了想,其实尼玛太简单了,因为题目说了只能垂直与竖直的走,所以最短距离不就是两个横坐标相减与两个纵坐标相减之...
分类:
其他好文 时间:
2014-08-25 22:57:35
阅读次数:
291
提到查找算法,最经典的就是二分查找算法了。在二分查找时要在有序的数据里查找目标target,先取中间元素与target比较,
当target小于中间元素的时候,则搜索数组的前半部分,target大于中间元素时,则取数组的后半部分。重复整个搜索的过程
将左半部分与有半部分当作子数组继续查找,直到找到元素或到子数组的大小为0停止。
原理上很简单却有较多细节,尤其是数据边界的取值是否会越界,whi...
分类:
其他好文 时间:
2014-08-25 22:55:21
阅读次数:
258