最小点覆盖 hdu--1054】的更多相关文章

d.一颗树,选最少的点覆盖所有边 s. 1.可以转成二分图的最小点覆盖来做.不过转换后要把匹配数除以2,这个待细看. 2.也可以用树形dp c.匈牙利算法(邻接表,用vector实现): /* 用STL中的vector建立邻接表实现匈牙利算法 效率比较高 处理点比较多的效率很高.1500的点都没有问题 */ #include<iostream> #include<stdio.h> #include<algorithm> #include<string.h>…
Sample Input 4 0:(1) 1 1:(2) 2 3 2:(0) 3:(0) 5 3:(3) 1 4 2 1:(1) 0 2:(0) 0:(0) 4:(0)   Sample Output 1 2 最小点覆盖=最大匹配数 水题,懒的拍了 #include<stdio.h> #include<iostream> #include<algorithm> #include<string.h> #include<vector> using n…
 最小点覆盖概念:选取最小的点数覆盖二分图中的所有边. 最小点覆盖 = 最大匹配数. 证明:首先假设我们求的最大匹配数为m,那么最小点覆盖必然 >= m,因为仅仅是这m条边就至少需要m个点.然后假如我们已经求得最小覆盖点集,那么在点集中每个点必然有着这样的性质,在于它相连的边里面,一定有一条边的端点不在最小点集中,因为如果连一条这样的边都没有,那这个点完全没有在最小点集的必要,我们任意选取这样的一条边,一定可以形成一个匹配,匹配数与最小点集中的点的个数相等,但现在这仅仅是一个匹配,他必然小于最大…
<题目链接> 题目大意:鲍勃喜欢玩电脑游戏,特别是战略游戏,但有时他无法找到解决方案,速度不够快,那么他很伤心.现在,他有以下的问题.他必须捍卫一个中世纪的城市,形成了树的道路.他把战士的最低数量的节点上,使他们可以观察所有的边.你能帮助他吗?士兵,鲍勃把一个给定的树,你的程序应该发现的最小数目. 解题分析: 最小点覆盖模板题,用最少的点来覆盖所有的边.建立无向图,然后求出其最大匹配,最小点覆盖数=最大匹配数.需要注意的是,本题用邻接矩阵存图跑匈牙利会T,所以用链式前向星存图. #includ…
Strategic Game Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7328    Accepted Submission(s): 3481 Problem Description Bob enjoys playing computer games, especially strategic games, but somet…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1054 题目大意:给你一棵树,选取树上最少的节点使得可以覆盖整棵树. 解题思路: 首先树肯定是二分图,因为树可以奇偶分层,从而根据二分图染色的原理可以确定树是二分图.我们可以用染色法确定出两个集合求最大匹配,也可以将边补成双向的,然后将最大匹配/2. 代码: #include<iostream> #include<cstdio> #include<cstring> #incl…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1150 有两个机器a和b,分别有n个模式和m个模式.下面有k个任务,每个任务需要a的一个模式或者b的一个模式完成. 两个机器初始都是0模式,一个机器转换一个模式需要重启一次.问你最少需要重启几次能完成所有的任务. 不太明显的二分匹配,将每个任务的两个模式连线,大概就能看出来这是个最小点覆盖问题. /* 将下面任务的a状态和b状态连边,线的个数就是任务个数. 要使重启次数最少,那么就要使选择的点最少而且…
50 years, 50 colors Problem Description On Octorber 21st, HDU 50-year-celebration, 50-color balloons floating around the campus, it's so nice, isn't it? To celebrate this meaningful day, the ACM team of HDU hold some fuuny games. Especially, there wi…
50 years, 50 colors Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2256    Accepted Submission(s): 1266 Problem Description On Octorber 21st, HDU 50-year-celebration, 50-color balloons floating…
无题II Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1545    Accepted Submission(s): 692 Problem Description 这是一个简单的游戏,在一个n*n的矩阵中,找n个数使得这n个数都在不同的行和列里并且要求这n个数中的最大值和最小值的差值最小.   Input 输入一个整数T表示T组数据…