题目链接题目大意:
一个有向图中, 有若干条连接的路线, 问最少放多少个机器人,可以将整个图上的点都走过。 最小路径覆盖问题。分析:
这时最小路径覆盖问题, 最小路径覆盖 = |V| - 最大匹配数。 (有关最小路径覆盖,最大匹配问题,相关概念不懂得点这里) 当然做这道题还有一个坑!! 如果有向图的边有相交的情况,那么就不能简单的对原图求二分匹配了 详细讲解看这
#include<iost...
分类:
其他好文 时间:
2015-06-03 10:05:47
阅读次数:
149
Problem Description传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配房子。这可是一件大事,关系到人民的住房问题啊。村里共有n间房间,刚好有n家老百姓,考虑到每家都要有房住(如果有老百姓没房子住的话,容易引起不安定因素),每家必须分配到一间房子且只能得到一...
分类:
其他好文 时间:
2015-06-02 17:14:24
阅读次数:
97
学习了一些常用建图方法,又理解了一遍二分,感觉更加清晰了。 1.行列匹配法;在一个矩阵中,加入上面一些点有人,现在有一些箭能将一行或一列的人杀死,问最少需要多少箭?因为箭要最少,所以要尽可能的在一行或一列上,即最小顶点覆盖问题。这时可以通过行列来进行二分匹配;假如位置(1,1),(1,3),(2,2...
分类:
其他好文 时间:
2015-05-31 16:43:39
阅读次数:
122
今天花了些时间学了下km算法 看了下代码有点大概思路,还是要多做题;KM算法求最小权二分匹配,模板题,构图很简单,直接把人当作左边的点,房子当作右边的点,两者之间的曼哈顿距离当作权值即可。第一次搞带权二分匹配的题,就是用KM算法求最小权的时候要加个处,由于KM求的是最大权,所以在套模板之前把权值都取...
分类:
编程语言 时间:
2015-05-26 23:17:25
阅读次数:
145
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4836因为要使对角线所有元素都是U,所以需要保证每行都有一个不同的列上有U,设(i,j)的位置是U,以U为边,连接点i和点j+n,也即连接行点和列点,最大匹配为n则必定有解,否则必...
分类:
其他好文 时间:
2015-05-17 02:03:13
阅读次数:
138
The Accomodation of Students
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3136 Accepted Submission(s): 1466
Problem Description
...
分类:
其他好文 时间:
2015-05-15 09:10:40
阅读次数:
96
Fire Net
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 7342 Accepted Submission(s): 4196
Problem Description
Suppose that we h...
分类:
Web程序 时间:
2015-05-15 09:10:16
阅读次数:
151
题目大意就是给出一个矩阵,每个格子里面要么是0, 要么是1;是否能够经过交换(交换行或者列)使得主对角线上都是1。其实就行和列的匹配,左边是行,右边是列,然后如果行列交点是1,那么就可以匹配,看是否为完美匹配,然后输出怎么交换的。开始很蒙的,后来仔细去 想,可以这样理解,想要对角线上都是1,那么我们...
分类:
其他好文 时间:
2015-05-14 23:49:28
阅读次数:
137
Prince and PrincessTime Limit: 6000/3000 MS (Java/Others)Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1267Accepted Submission(s): 358...
分类:
其他好文 时间:
2015-05-07 18:43:49
阅读次数:
119
题意:选尽可能多*号点,要求选得点之间必须有#阻隔,否者不能在同一行或者同一列。
做法:
先要把竖向*和O相连的 都连成一起,并编号。
然后是横着的也一样。
然后把竖向的每一块 都看作二分图左边的每一个点,
然后把横向的每一块 都看作二分图右边的每一个点,
星号必会对应一个竖向的块 编号, 和一个横向的块编号。
把每个星号对应的 两个编号连线。
如果匹配了,就表示这两个块都被占据了,这两个块就不能再有其他星号点被连了。
所以要知道最多有多少*可以放,就只用知道最多可以有几条边可以选。也就是求最大二...
分类:
其他好文 时间:
2015-05-06 00:00:05
阅读次数:
178