摘要: 博客搬迁至CSDN,地址为http://blog.csdn.net/ciaran_gzq 阅读全文
posted @ 2018-02-15 10:32 PosProteus 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题意:给一张m*n的棋盘,上面有k个格子有洞,用1*2的骨牌将棋盘覆盖,每个格子必须被恰好覆盖一次,有洞的地方不能覆盖,问是否存在这样的方案。 思路:容易想到将格点作为二分图中的点,骨牌作为二分图中的边(骨牌可能放置时),求二分图的最大匹配,如果匹配数与n*m-k相等,则方案存在,否则不存在;容易想 阅读全文
posted @ 2016-08-17 20:31 PosProteus 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 题意:在NxN的网格上,有一些格点是草地,有一些格点是泥地,给你一些宽度为1的长度不限的木板,将泥地全部覆盖,木板可以互相重叠但不能覆盖草地(这一点不同于poj3041) 思路:建图比较难想,将每一行上连续的泥地和每一列上连续的泥地计为二分图中的点,每一块泥地对应二分图中的边,就能将问题转化为最小点 阅读全文
posted @ 2016-08-15 14:54 PosProteus 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个NxN的网格,其中有k个格点上有障碍物,每次可以消除一行或一列障碍物,问最少几次可以消除全部的障碍物。 思路:二分图的经典模型,将所有的行看作二分图中左边的端点,将所有的列看作右边的端点,当格点上有障碍物时,连一条边,问题转变为求二分图的最小顶点覆盖,根据König定理由二分图的最大匹 阅读全文
posted @ 2016-08-12 20:45 PosProteus 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 思路:模板题,注意是无向图,所以最后结果要除以2。点有1500个,邻接矩阵会超时,用了邻接表。 阅读全文
posted @ 2016-08-12 20:02 PosProteus 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 二分图基本概念和最大匹配 http://www.renfei.org/blog/bipartite-matching.html http://www.cnblogs.com/kuangbin/archive/2012/08/26/2657446.html http://wenku.baidu.com 阅读全文
posted @ 2016-08-10 16:54 PosProteus 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 思路:裸的二分图最大匹配,居然没看出来,我还是要学习一个 阅读全文
posted @ 2016-08-10 15:42 PosProteus 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5791 题意:给你两个序列,求相同的子序列个数,结果对1e9+7取余 题解:dp[i][j]表示两序列分别以i,j为结尾的子问题结果,当i不等于j时,d[i][j] = d[i-1][j]+dp[i][j 阅读全文
posted @ 2016-08-03 19:41 PosProteus 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5783 题意:给你n个整数,将它分成若干个前缀和大于等于0的块,求块的最大个数。 题解:题目保证有解。从后向前贪心,当前和大于等于0时,序列个数增加一。 阅读全文
posted @ 2016-08-03 19:32 PosProteus 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 题意:利用树状数组求逆序数; 思路:因为输入范围较大,先离散化一下,得到的数组a记录了原来数组的大小关系;然后按下标顺序执行add(a[i],1),这样sum(a[i])得到的就是小于等于a[i]的个数,i-sum(a[i])即为a[i]前面比a[i]大的数的个数 //外循环n次并累加i-sum(a 阅读全文
posted @ 2016-06-03 11:57 PosProteus 阅读(199) 评论(0) 推荐(0) 编辑