Machine ScheduleTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5614Accepted Submission(s): 2804Pr...
分类:
其他好文 时间:
2014-08-01 19:04:52
阅读次数:
324
把行和列都看做是点,小行星看成是边的话,那么这个显然就是求一个最小点覆盖集的问题。最小点覆盖 == 最大匹配#include #include #include #include #include #include #include #include #include #include #inclu...
分类:
其他好文 时间:
2014-07-31 20:12:07
阅读次数:
170
题目就是问如何用最小的板覆盖所有的草地。可以横着放,也可以竖着放,允许一个草地放多个点。
建图方法就是 每个横向的草地作为X,纵向连续的草地作为Y. X连接Y的边表示, 这里有他们的公共点。。
很显然,覆盖所有草地,就是覆盖所有的边
//tpl
//ipqhjjybj_tpl.h
//header.h
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2014-07-31 13:25:56
阅读次数:
207
把每一个任务看做一个边,机器的模式看做是一个点,这个其实就是求一个最少点覆盖所有边即最小点覆盖集的问题,因为最小点覆盖集=二分图的最大匹配,所以问题转化成了求二分图最大匹配问题。第一次写二分图匹配,感觉建模还是相当困难的。#include #include #include #include #in...
分类:
其他好文 时间:
2014-07-31 13:10:56
阅读次数:
212
解题报告
题目传送门
题意:
A机器有n个模式,B机器有m个模式,每个作业可以在任何机器的特定模式下工作,转换模式需要耗时,求最小耗时
思路:
把AB两机器的模式当成二分图顶点,模式之间的连线就是某个作业可以在该两个模式下工作,就转换成求最小点覆盖,用最少的点覆盖最多的边。
最小点覆盖=最大匹配
#include
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-07-26 17:14:22
阅读次数:
253
解题报告
题意:
给出NxN的矩阵,有M个点是障碍
每次只能删除一行或者一列,最少删除多少次才能清除障碍
思路:
把行和列看作两个集合结点,把障碍看作集合结点的连线,这样就转化成求用最少的点来消灭边,也就是最小点覆盖。
在二分图中:(n个结点,且没有孤立的点)
最小点覆盖=最大匹配
最大点独立=结点数-最大匹配
#include
#inclu...
分类:
其他好文 时间:
2014-07-26 01:55:56
阅读次数:
213
给一个矩阵,里面有一些不同颜色的气球,每次可以消灭一行或一列中某一种颜色的气球,问你在k次及以内,有哪些颜色的气球是无论如何也消不完的。
那么思路就是,对每一种颜色的气球求最小点覆盖,>k 则为答案。
相当于
poj3041 的加强版,因为矩阵中不是每一个点都是等价的。
#include
#include
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2014-07-22 22:38:35
阅读次数:
211
二分图中,点覆盖数是匹配数。
(1) 二分图的最大匹配数 = 最小点覆盖数
即求最少的点使得每条边都至少和其中的一个点相关联,很显然直接取最大匹配的一段节点即可。
(2) 二分图的独立数 = 顶点数 - 最大匹配数
很显然的把最大匹配两端的点都从顶点集中去掉这个时候剩余的点是独立集,这是|V|-2*|M|,同时必然可以从每条匹配边的...
分类:
其他好文 时间:
2014-07-22 00:32:35
阅读次数:
175
有nx种A类机器,有ny种B类机器,k个东西,每个东西可以在a或b启动时生产(a属于A,b属于B),初始状态AB均在0,
每次切换需要重启,要生产全部k种东西,问至少重启几次。
将每件东西a,b建边,则每条边至少需要一个点才能完成该边代表的东西,题目等价于最小点覆盖问题,既用最少的点覆盖所有的边,
根据二分图性质,最小点覆盖数=最大匹配数
#include
#inclu...
分类:
其他好文 时间:
2014-07-22 00:31:36
阅读次数:
195
#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