Hdu1054 Strategic Game(最小覆盖点集)】的更多相关文章

Strategic Game Problem Description Bob enjoys playing computer games, especially strategic games, but sometimes he cannot find the solution fast enough and then he is very sad. Now he has the following problem. He must defend a medieval city, the roa…
Strategic Game Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5034    Accepted Submission(s): 2297 Problem Description Bob enjoys playing computer games, especially strategic games, but somet…
题意:有A,B两台机器, 机器A 有 n个模式(0, 1, 2....n-1),同样机器B有m个模式, 两个机器一开始的模式都为0,有k个作业(id,x,y) 表示作业编号id, 该作业必须在A机器在模式x下或者B机器在模式y下完成,问你至少要切换几次机器模式. 思路:很裸的最小覆盖点集,不熟悉概念的多看看蓝书吧,很容易证明 最小覆盖点集 == 最大匹配 #include <cstdio> #include <cstring> #include <vector> usi…
题意:x,y两台机器各在一边,分别有模式x0 x1 x2 ... xn, y0 y1 y2 ... ym, 现在对给定K个任务,每个任务可以用xi模式或者yj模式完成,同时变换一次模式需要重新启动一次机器,问最少的启动次数链接:http://acm.hdu.edu.cn/showproblem.php?pid=1150思路:稳定转化成给定k条边,使得每一条边最少被一个点覆盖,即最小覆盖点集最后求出的最大匹配数需要减一才是启动次数,注意到刚开始两台机器都是在0模式下,所以没有0模式,最后就不需要减…
Asteroids Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 25232   Accepted: 13625 Description Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape of an N x N grid (1 <= N <= 500). The grid contains K a…
题目链接:https://vjudge.net/problem/HDU-1054 Strategic Game Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8673    Accepted Submission(s): 4174 Problem Description Bob enjoys playing computer gam…
Strategic Game Bob enjoys playing computer games, especially strategic games, but sometimes he cannot find the solution fast enough and then he is very sad. Now he has the following problem. He must defend a medieval city, the roads of which form a t…
Strategic Game Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10153    Accepted Submission(s): 4744 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1054 Description: Bob enjoys playing compute…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1054 思路:树形DP,用二分匹配也能解决 定义dp[root][1],表示以root 为根结点的子树且在root放一个士兵的最优值,那么因为在root已经有士兵了,所以对其孩子来说可以放也可以不放 那么dp[root][1]+=min(dp[son][1],dp[son][0]); dp[root][0]表示以root为根结点的子树且在root没有放士兵的最优值,那么因为在root没有士兵,所以在其…
 最小点覆盖概念:选取最小的点数覆盖二分图中的所有边. 最小点覆盖 = 最大匹配数. 证明:首先假设我们求的最大匹配数为m,那么最小点覆盖必然 >= m,因为仅仅是这m条边就至少需要m个点.然后假如我们已经求得最小覆盖点集,那么在点集中每个点必然有着这样的性质,在于它相连的边里面,一定有一条边的端点不在最小点集中,因为如果连一条这样的边都没有,那这个点完全没有在最小点集的必要,我们任意选取这样的一条边,一定可以形成一个匹配,匹配数与最小点集中的点的个数相等,但现在这仅仅是一个匹配,他必然小于最大…
题目链接:https://vjudge.net/problem/UVA-11419 题解: 1.二分图匹配之最小点覆盖.:把x坐标和y坐标看成是点, 图中的目标看成是边,所以最终的目的是求出用最少的点,去覆盖掉所有的边.如果在M[x][y]处有目标,则连一条边x-y.接着跑一遍匈牙利算法. 2.除此之外,题目还要求输出最小覆盖点集.可知我们已经求出了最大匹配数,首先我们把所有的覆盖点都落在左边的匹配点上.但是这样做却不能保证所有的边都会被覆盖,因为假设左边有未匹配点,且这些未匹配点与右边的点(是…
 二分图最大匹配的K?nig定理及其证明 本文将是这一系列里最短的一篇,因为我只打算把K?nig定理证了,其它的废话一概没有.    以下五个问题我可能会在以后的文章里说,如果你现在很想知道的话,网上去找找答案:    1. 什么是二分图:    2. 什么是二分图的匹配:    3. 什么是匈牙利算法:(http://www.matrix67.com/blog/article.asp?id=41)    4. K?nig定理证到了有什么用:    5. 为什么o上面有两个点. K?nig定理是…
Taxi Cab Scheme 时间限制: 1 Sec  内存限制: 64 MB 题目描述 Running a taxi station is not all that simple. Apart from the obvious demand for a centralised coordination of the cabs in order to pick up the customers calling to get a cab as soon as possible,there is…
第一次更改:http://blog.sina.com.cn/s/blog_51cea4040100h152.html 讲的更细致 增广路:https://blog.csdn.net/qq_37457202/article/details/80161274 ------------------------------------------------------------------------------------------------------- 看 博客 https://blog.…
题目链接:https://vjudge.net/problem/HDU-3829 Cat VS Dog Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total Submission(s): 4118    Accepted Submission(s): 1493 Problem Description The zoo have N cats and M dogs, toda…
题目链接:https://vjudge.net/problem/UVALive-3415 题解: 题意:选出尽可能多的人, 使得他(她)们之间不会擦出火花.即求出最大独立集. 1.因为性别有男女之分,所以此题的模型是个天然的二分图. 2.如果两个人之间可能擦出火花(即4条限定都不满足),则在他和她之间连一条边. 3.用匈牙利算法求出最小覆盖点数(即最大匹配数),然后最大独立集的元素个数就是总结点数减去最小覆盖点数. 4.为何:最大独立集 = 总体 - 最小覆盖点集  ? 答:最大独立集也可以这么…
(写给自己看)匈牙利算法(最大匹配)和KM算法(最佳匹配) 匈牙利算法 思想 不断寻找增广路,每次寻得增广路,交换匹配边和非匹配边,则匹配点数+1 这里增广路含义:交错路,即从未匹配点出发经过未匹配边->匹配边->未匹配边->.....->未匹配边 Konig定理:无权二分图的最大匹配=最小覆盖点集,证明 有价值的博客:blog1,blog2,blog3 算法其实并不难 模板 模板题目:poj1274,poj1325,后者需要konig定理转化 #include <iostr…
Konig定理 由匈牙利数学家柯尼希(D.Konig)于1913年首先陈述的定理. 定理的内容:在0-1矩阵中,1的最大独立集合最小覆盖包含的元素个数相同,等价地,二分图中的最大匹配数等于这个图中的最小点覆盖数. 证明: 对于上面的二分图,它的最大匹配(不唯一)已经用红线标出来了, 然后我们对于右边或左边(这里按右边为例)没有匹配的点,我们从它出发走交替路(这里有介绍),会经过若干节点 将所有从右边没有匹配的点开始的交替路上的所有的点标注起来(如下图标蓝的点) 可以证明左边所有被标注的点都是被匹…
König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数.如果你还不知道什么是最小点覆盖,我也在这里说一下:假如选了一个点就相当于覆盖了以它为端点的所有边,你需要选择最少的点来覆盖所有的边. 转载自:https://blog.csdn.net/niushuai666/article/details/7036897 匈牙利算法需要我们从右边的某个没有匹配的点,走出一条使得“一条没被匹配.一条已经匹配过,再下一条又没匹配这样交替地出现”的路(交错轨,增…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1054 求最小覆盖点,也就是求最大匹配,要用邻接表写,不然会TLE:当然也可以用HK算法: #include<stdio.h> #include<string.h> #include<queue> #include<algorithm> using namespace std; #define N 1510 int vis[N], head[N], cnt, us…
http://poj.org/problem?id=2226 Muddy Fields Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7078   Accepted: 2622 Description Rain has pummeled the cows' field, a rectangular grid of R rows and C columns (1 <= R <= 50, 1 <= C <= 5…
大白书355 // UVa11419 SAM I AM // Rujia Liu #include <cstdio> #include <cstring> #include <vector> #include <algorithm> using namespace std; + ; // 单侧顶点的最大数目 // 二分图最大基数匹配 struct BPM { int n, m; // 左右顶点个数 vector<int> G[maxn]; //…
Antenna Placement Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10518   Accepted: 5189 Description The Global Aerial Research Centre has been allotted the task of building the fifth generation of mobile phone nets in Sweden. The most s…
[转http://www.cppblog.com/abilitytao/archive/2009/09/02/95147.html  ->  http://yejingx.ycool.com/post.2801156.html:http://hi.baidu.com/cjhh314/blog/item/ded8d31f15d7510c304e1591.html] 二分图最小覆盖的Konig定理及其证明 一.定义 二分图: 顶点可以分类两个集合X和Y,所有的边关联在两个顶点中,恰好一个属于集合X,…
题意: 一个r*c的矩形,求一个子矩形通过平移复制能覆盖整个矩形 关于一个字符串的最小覆盖子串可以看这里http://blog.csdn.net/fjsd155/article/details/6866991 把他分成对行和对列,对行覆盖最小就是n - next[n] ,然后求最小公倍数 对列的也是n - next[n], 然后求最小公倍数 #include <iostream> #include <cstdio> #include <algorithm> #inclu…
参考博客:如何找取 最小覆盖点集合 题意:R*C大小的网格,网格上面放了一些目标.可以再网格外发射子弹,子弹会沿着垂直或者水平方向飞行,并且打掉飞行路径上的所有目标,计算最小多少子弹,各从哪些位置发射,才能将所有的目标全部打掉 分析:就是求最小覆盖点 以及 输出所有的覆盖点 最小覆盖点 == 最大匹配数 个人理解: 最大匹配数是用匈牙利算法求的,就是从左边一个点开始找到他看上的那个妹纸,如果那个妹纸已经名花有有主就跟那个男生换一个...沿着 ( 没匹配 - 匹配边 -... - 没匹配边)  这…
B - Strategic Game Time Limit:10000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 1054 Description Bob enjoys playing computer games, especially strategic games, but sometimes he cannot find the solution fast…
Introduction Many approaches to object oriented modeling tend not to scale well when the applications grow in size and complexity. Context Mapping is a general purpose technique, part of the Domain Driven Design (DDD) toolkit, helps the architects an…
Milking Grid Problem's Link:http://poj.org/problem?id=2185 Mean: 给你一个n*m的字符矩阵,让你求这个字符矩阵的最小覆盖矩阵,输出这个最小覆盖矩阵的面积. analyse: 做了上一篇博客的题目,就会求一个字符串的最小覆盖矩阵.同样的,现在求字符矩阵的最小覆盖矩阵,只是将一维推向了二维,我们在纸上画一下图,你会发现,其实二维的也是so easy! 我们将每一行的字符串的最小覆盖子串求出来,然后对这n个数求LCM,那么结果就是行覆盖的…
KMP与最小覆盖子串 最小覆盖子串:对于某个字符串s,它的最小覆盖子串指的是长度最小的子串p,p满足通过自身的多次连接得到q,最后能够使s成为q的子串. 比如: 对于s="abcab",它的最小覆盖子串p="abc",因为p通过在它后面再接上一个p(即重叠0个字符),可以得到q="abcabc",此时s是q的子串. 对于s="ababab",它的最小覆盖子串为p="ab". 根据KMP算法的next数组的定…