解题报告
题意:
给出NxN的矩阵,有M个点是障碍
每次只能删除一行或者一列,最少删除多少次才能清除障碍
思路:
把行和列看作两个集合结点,把障碍看作集合结点的连线,这样就转化成求用最少的点来消灭边,也就是最小点覆盖。
在二分图中:(n个结点,且没有孤立的点)
最小点覆盖=最大匹配
最大点独立=结点数-最大匹配
#include
#inclu...
分类:
其他好文 时间:
2014-07-26 01:55:56
阅读次数:
213
#include
#include
#include
#include
#include
#include
#include
const int maxn=510;
using namespace std;
int my[maxn],mx[maxn],vis[maxn],e[maxn][maxn],n;
int path(int i)
{
int j;
for(j=1;j<=n...
分类:
其他好文 时间:
2014-07-21 23:29:42
阅读次数:
199
http://poj.org/problem?id=3041
Asteroids
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 14476
Accepted: 7880
Description
Bessie wants to navigate her...
分类:
其他好文 时间:
2014-07-17 21:03:04
阅读次数:
308
点击打开链接
题意:某人想实现太空旅行,可以通过空洞实现,而它们的连通方式就是一张n * n的矩阵;现在有一种武器,可以一次性消灭它的一行或者一列(意思就是相当于留下一条可行路)。
解析:利用匈牙利算法实现,二分图匹配
#include
#include
#include>
using namespace std;
const int maxn = 1005;
int mapp[ max...
分类:
其他好文 时间:
2014-07-16 09:11:30
阅读次数:
190
题目地址:Asteroids题目大意: 给你一个N*N 的格子,在给你星星所在的坐标位置,操作是每次可以消除一整行或一列的星星,问你最小需要多少次操作。解题思路: 关键是需要往二分匹配上想。你可以先画图,把星星位置的坐标行和列建图,(1->1,1->3)/(2->2)/(3->2).将所有的边消去....
分类:
其他好文 时间:
2014-07-15 00:15:02
阅读次数:
334
点击打开链接
二分图的最小顶点覆盖数 = 二分图的最大匹配数
题意: 在N*N的网络中有K颗小行星。小行星i的位置是(Ri, Ci)。现在有一个强力的武器能够用一发光束将一整行或一整列的小行星消灭。想要利用这个武器消灭所有的小行星最少需要几发光束?
分析: 以小行星的左右坐标建立二分图,就可以看出是求二分图的最小顶点覆盖数。
#include
#include
#inc...
分类:
其他好文 时间:
2014-07-12 23:37:10
阅读次数:
220
Asteroids
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 14399
Accepted: 7836
Description
Bessie wants to navigate her spaceship through a dangerous ast...
分类:
其他好文 时间:
2014-07-12 21:08:48
阅读次数:
210
Asteroids
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 14388
Accepted: 7828
Description
Bessie wants to navigate her spaceship through a dangerous aster...
分类:
其他好文 时间:
2014-07-12 21:06:55
阅读次数:
218
这个题目说,有一个N*N的规格的方格。某些格子里有*号,每次可以消除一行或者一列中所有的*号。最少需要消多少次?新学到的,什么什么定理,最少点覆盖等于最大匹配数。这个定理可以这样来理解(看别人的),对于最大匹配状态下的一条匹配边,不可能两边同时存在可连的未匹配点,因为这样就可以增广了,所以对于一条匹...
分类:
其他好文 时间:
2014-07-02 10:09:15
阅读次数:
192