2015年7月28日

摘要: 我的博客上的第一道Ural的题目呢。。 首先可以发现假设现在只有k对人可以两两配对,那么剩下的必定还要建立n−2k条线路那么如果要ans=n−2k+k尽量小,那么我们需要的就是让n−k尽量小就是让k尽量大,那么久转换成了二分图的最大匹配问题#include #include #in... 阅读全文
posted @ 2015-07-28 16:01 JeremyGuo 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 可以发现如果把一条边看作一个任务,那么连接的就是两台机器的模式的编号,那么问题就转化成了最小的点覆盖问题,那么注意特殊处理存在一个任务在任意一台机器中是0的情况,因为一开始大家都是0,那么如果存在一个0直接不考虑这个任务就行了。#include #include #include ... 阅读全文
posted @ 2015-07-28 15:57 JeremyGuo 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 这道题目不用我说什么了吧,裸的最小路径覆盖问题(还有其他方法=》出门左转网络流)然后对于这道题目而言就是每一个点差点分成两个,一个进一个出,那么显然二分图匹配,每一个点只能一进一出,那么匹配出来的边的数量就是当前这个图上有多少条边可以缩成一个点,那么直接ans=|V|−ans′就好... 阅读全文
posted @ 2015-07-28 15:50 JeremyGuo 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 首先这道题目可以发现我们可以发现如果集合S表示所有需要被覆盖的点的行和列的集合那么我们的任务就是从S中选出一个子集使得size(S′)最小同时S′可以覆盖所有的点。那么如果我们选择了一个行那么和当前行相关的所有的列都有可能不被再选,那么将当前行和当前行上所有点的列连接,那么我们求得... 阅读全文
posted @ 2015-07-28 15:43 JeremyGuo 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 直接连接每一个孩子和他们所描述的区间的每一个点,然后做一次最大匹配(因为要说谎的人最少),做的时候要倒着做,因为要最大方案,然后出来检查一下每一个点是否为匹配点,保存一下输出就好了。#include #include #include //#include #include #in... 阅读全文
posted @ 2015-07-28 15:32 JeremyGuo 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 首先我们要求的是一个完全图,那么因为男生之间互相认识,女生之间互相认识,那么我们只考虑男生和女生认识的情况,我们要选择一个大家都互相认识的出来,那么做当前图的补图可以发现如果两个点之间有直接关系,那么这两个点一定是互相不认识的,如果没有,那么一定是认识的,所以选出的点在当前图中不能... 阅读全文
posted @ 2015-07-28 15:28 JeremyGuo 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 首先可以很容易的发现一个性质:无论怎么交换行和列,每一行每一列的元素数量始终不会改变,那么就像八皇后问题一样,只不过改成了棋盘上放了n个车不能互相冲突。那么每一个1的位置代表可以放一个车,每一个0的位置代表不能放车,那么可以发现如果在当前位置可以放个车并且放了的话,那么就不能在当前... 阅读全文
posted @ 2015-07-28 15:24 JeremyGuo 阅读(167) 评论(0) 推荐(0) 编辑

导航