POJ2226 不错的最小顶点覆盖】的更多相关文章

题意:        给你一个n * m 的矩阵,上面有" * " 和 " . " ,让你用少的木板吧所有" * "覆盖,木板宽度是1,长度随意,木板可以重叠,但是不能覆盖到" . "上. 思路:       这个题目建图方式不错,回想下最基本的最小定点覆盖,也是在n * m 的矩阵上,覆盖某些点,但是可以覆盖" . "那样直接匹配行列就行了,这个如果是***.***就得用两个了,那我们可以直接把所有的行都…
在一个n*m的草地上,.代表草地,*代表水,现在要用宽度为1,长度不限的木板盖住水, 木板可以重叠,但是所有的草地都不能被木板覆盖. 问至少需要的木板数. 这类题的建图方法: 把矩阵作为一个二分图,以行列分别作为2个顶点集 首先以每一行来看,把这一行里面连续的*编号,作为一个顶点 再以每一列来看,把这一列里面连续的*编号,作为一个顶点 则每一个*都有2个编号,以行看时有一个,以列看时有一个,则把这2个编号连边,容量为1 再建一个源点,连接所有行的编号,一个汇点,连接所有列的编号 这道题要求的是,…
Muddy Fields Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10044   Accepted: 3743 Description Rain has pummeled the cows' field, a rectangular grid of R rows and C columns (1 <= R <= 50, 1 <= C <= 50). While good for the grass,…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=3140 题意:最近在生物实验室工作的小T遇到了大麻烦. 由于实验室最近升级的缘故,他的分格实验皿是一个长方体,其尺寸为a*b*c.为了实验的方便,它被划分为a*b*c个单位立方体区域,每个单位立方体尺寸为1*1*1.用(i,j,k)标识一个单位立方体,1 ≤i≤a,1≤j≤b,1≤k≤c.这个实验皿已经很久没有人用了,现在,小T被导师要求将其中一些单位立方体区域进 行消毒操作(每个区域可…
http://poj.org/problem?id=3041 Asteroids Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12601   Accepted: 6849 Description Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape of an N x N grid (1 <= N <…
Machine Schedule Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6701    Accepted Submission(s): 3358 Problem Description As we all know, machine scheduling is a very classical problem in comput…
分析:这里使用树形DP做. 1.最小顶点覆盖做法:最小顶点覆盖 == 最大匹配(双向图)/2. 2.树形DP: dp[i][0]表示i为根节点,而且该节点不放,所需的最少的点数. dp[i][1]表示i为根节点,而且该节点放,所须要的最少的点数. dp[i][0]=sum(dp[son[i][j]][1]) 该点不放.则它的儿子节点必须都放,仅仅有这样之间的边才干够被覆盖. dp[i][1]=sum(min(dp[son[i][j]][0],dp[son[i][j]][1])) 该点放的话,则它…
传送门:Strategic Game 题意:用尽量少的顶点来覆盖所有的边. 分析:最小顶点覆盖裸题,最小顶点覆盖=最大匹配数(双向图)/2. #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <iostream> #include <algorithm> #include <queue> #include <…
pid=1150">Machine Schedule Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5424    Accepted Submission(s): 2691 Problem Description As we all know, machine scheduling is a very classical pro…
传递闭包最开始是在Floyd-Warshall算法里面出现的,当时这算法用的很少就被我忽视了.. 传递闭包是指如果i能到达k,并且k能到达j,那么i就能到达j Have you ever read any book about treasure exploration? Have you ever see any film about treasure exploration? Have you ever explored treasure? If you never have such exp…
有向图的最小路径覆盖=V-二分图最大匹配. Consider a town where all the streets are one-way and each street leads from one intersection to another. It is also known that starting from an intersection and walking through town's streets you can never reach the same inters…
最小定点覆盖是指这样一种情况: 图G的顶点覆盖是一个顶点集合V,使得G中的每一条边都接触V中的至少一个顶点.我们称集合V覆盖了G的边.最小顶点覆盖是用最少的顶点来覆盖所有的边.顶点覆盖数是最小顶点覆盖的大小. 相应地,图G的边覆盖是一个边集合E,使得G中的每一个顶点都接触E中的至少一条边.如果只说覆盖,则通常是指顶点覆盖,而不是边覆盖. 在二分图中:最大匹配数=最小顶点覆盖数: Bob enjoys playing computer games, especially strategic gam…
Asteroids Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 22905   Accepted: 12421 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…
Strategic Game Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8503    Accepted Submission(s): 4093 Problem Description Bob enjoys playing computer games, especially strategic games, but somet…
最小顶点覆盖:用最少的点,让每条边都至少和其中一个点关联: ...以为自己很聪明..用边连边...最后还是点连点  哎.... hc 写的  匈牙利足够///// #include <iostream> #include <cstdio> #include <cstring> #include <queue> #include <algorithm> #include <cmath> #include <vector> #…
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 asteroids (1 <= K <= 10,000), which are conveniently located at the lattice points of the…
题目链接:[http://acm.hdu.edu.cn/showproblem.php?pid=1498] 题意:给出一个大小为n*n(0<n<100)的矩阵,矩阵中放入m种颜色(标号为1-m),然后对于每种颜色有k次操作,每次操作可以选择一行或者一列,然后把这一行或者这一列的这种颜色全部去掉,求每种颜色k次操作以后,不能去掉的颜色是哪几种颜色,从小到大输出. 最小顶点覆盖要求用最少的点(X或Y中都行),让每条边都至少和其中一个点关联.Knoig定理:二分图的最小顶点覆盖数等于二分图的最大匹配…
题目大意:$N*N$的网格中有$n$颗行星,若每次可以消去一整行或一整列,求最小的攻击次数使得消去所有行星. 解题关键:将光束当做顶点,行星当做连接光束的边建图,题目转化为求该图的最小顶点覆盖,图的最小顶点覆盖是$NP$问题,又因为该图是二分图(水平方向的点和竖直方向的点),而二分图的最大匹配=最小顶点覆盖,即可求解该问题. #include<cstdio> #include<cstring> #include<algorithm> #include<cstdli…
Machine Schedule Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7362    Accepted Submission(s): 3677 Problem Description As we all know, machine scheduling is a very classical problem in comput…
题目 给到一个矩阵,有些格子上是草,有些是水.需要用宽度为1,长度任意的若干块木板覆盖所有的水,并不能覆盖草,木板可以交叉,但只能横竖放置,问最少要多少块板. 分析 经典的矩阵二分图构图和最小点覆盖.无非就是两种方向,横向和竖向.我们把水块连续的编成同一号,那么对于一个点,它会有一个横向编号和纵向编号.我们要覆盖这个点,只需要覆盖这条边即可.于是问题转化成了一个最小点覆盖问题,即在二分图上选出最少的点,使它们能够覆盖所有的边.这里引出König定理. König 定理 二分图中,最小点覆盖=最大…
问题描述:就是在图中找最小的点集,使得覆盖所有边. 和独立集等价:独立集问题:在图中找最大的点集,使得点集内的所有点互不相连. 引理:顶点覆盖集和独立集互补. 上面这个引理使得这两个问题可以相互规约,从而这两个问题等价. 等价问题:给定图G和数k, 问G包含大小至少为k的独立集吗? 为什么等价:如果我们能在多项式时间内给出这个问题的答案,那么我们可以通过二分查找得到最大独立集的size为K.一个点如果是最大独立集中的点,等价于除去这个点后得到的图G'含有一个K-1大小的独立集.那么我们每次选取一…
Asteroids Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17237   td>Accepted: 9375 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 contain…
[1635] Explosion 时间限制: 10000 ms 内存限制: 65535 K 问题描述 there is a country which contains n cities connected by n - 1 roads(just like a tree). If you place TNT in one city, all the roads connect these city will be destroyed, now i want to destroy all the…
Machine Schedule Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11958   Accepted: 5094 Description As we all know, machine scheduling is a very classical problem in computer science and has been studied for a very long history. Scheduli…
POJ 2226 Muddy Fields 题目链接 题意:给定一个图,要求用纸片去覆盖'*'的位置.纸片能够重叠.可是不能放到'.'的位置,为最少须要几个纸片 思路:二分图匹配求最小点覆盖.和放车那题基本一样.就是注意要预处理一下行列,把连续横的'*'当成一行,竖的'*'当成一列,建图跑最小点覆盖就可以 代码: #include <cstdio> #include <cstring> #include <vector> #include <algorithm&g…
50 years, 50 colors Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1516 Accepted Submission(s): 818 Problem Description On Octorber 21st, HDU 50-year-celebration, 50-color balloons floating aroun…
*.*. .*** ***. ..*. 题意:有一个N*M的像素图,现在问最少能用几块1*k的木条覆盖所有的 * 点,k为>=1的任意值. 分析:和小行星那题很像.小行星那题是将一整行(列)看作一个点,但本题一行或一列内可能有多个连通块.所以先根据像素图统计出总的行列连通块的个数. 将行连通块视作X部:列连通块视作Y部:连接一对行列连通块的*像素点视作边,问题转化为了用最少的边去覆盖所有的点,即最小点覆盖. 建图之后求二分图的最小点覆盖. #include<iostream> #incl…
题目:点击打开链接 题意:每个格子有不同颜色的气球用不同数字表示,每次可选某一行              或某一列来戳气球.每个人有K次机会.求最后哪些气球不能在             k次机会内被戳破.将这些气球的编号按升序输出. 分析:行列匹配,每种颜色的气球都要判断,故dfs传参时加一个气球的              编号. 感想:1.开始以为要按照最大匹配数按升序排列,昨天wa了一下午,把我搞郁闷了.                     今天重新看题,是要按照id来排序.  …
Strategic Game Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5783    Accepted Submission(s): 2677 Problem Description Bob enjoys playing computer games, especially strategic games, but somet…
链接:点击打开链接 题意:N*N的矩阵中有一些点代表陨石.每次仅仅能消灭一行或一列连,问须要多少次才干所有消灭 代码: #include <map> #include <queue> #include <stack> #include <vector> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream> #…