05 2013 档案

摘要:二分图点覆盖数就是二分图最大匹配数的证明过程的原文地址如下:http://www.matrix67.com/blog/archives/116然后为了便于注解,将原文复制在下面:“König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数。如果你还不知道什么是最小点覆盖,我也在这里说一下:假如选了一个点就相当于覆盖了以它为端点的所有边,你需要选择最少的点来覆盖所有的边。比如,下面这个图中的最大匹配和最小点覆盖已分别用蓝色和红色标注。它们都等于3。这个定理相信大多数人都知道,但是网络上给出的证明并不多见。有一些网上常见的“证明”明显是错误的 阅读全文
posted @ 2013-05-16 11:10 kbyd 阅读(318) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1025方法:求最大递增非连续子序列朴素的方法是o(n^2)的时间复杂度,而该题要超时,所以用二分的,具体实现参见链接http://www.programfan.com/blog/article.asp?id=13086感想:熟悉上述链接的定理证明。代码:View Code #include<iostream>#include<math.h>#include<algorithm>#include<stack>using namespace std;int 阅读全文
posted @ 2013-05-02 11:36 kbyd 阅读(167) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1160方法:建模后首先对速度降序排序,然后再排序后的结果序列中找一个最长的递增非连续子序列,并且记录前驱。感想:虽然以来就根据速度排了序,但是要注意速度相等的情况。代码:View Code #include<iostream>#include<math.h>#include<algorithm>#include<stack>using namespace std;int const MAX =0x3f3f3f3f;struct Mouse{ int w 阅读全文
posted @ 2013-05-02 10:38 kbyd 阅读(195) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078方法:由于该题目中是二维数组,并且每一个cell都可能被从几个方向探寻到,而不是一维的那样只会被从前往后的方向探寻到,所以,这里需要对这些cell(除起始点那个)根据里面含有的cheese量递增排序,然后根据这个顺序去考虑cell。可以这样理解,计算一个cell A作为当前递增非连续子序列最后一个元素时能获取多少的值,对于b,c ,d,e ....这些可以直接移动到a的cell,首先要计算出b,c ,d,e。。这些cell作为递增非连续子序列最后一个元素时能获取多少的值,这是他们的最优解,然后 阅读全文
posted @ 2013-05-02 10:08 kbyd 阅读(198) 评论(0) 推荐(0) 编辑