
二分图匹配
文章平均质量分 54
qq172108805
这个作者很懒,什么都没留下…
展开
-
hdu 4160 Dolls--最小点集覆盖=V-二分图最大匹配
#include#include#includeusing namespace std;struct node{ int x,y,z;}w[510];vectorh[510];int match[510];int vis[510];int dfs(int i){ for(int j=0;j<h[i].size();j++) { if(!vis[h[i][j]])//原创 2012-03-20 20:48:46 · 544 阅读 · 0 评论 -
poj 1422Air Raid--最小路径覆盖
/*题意:有个城镇,所有路都是单行道,并且没有环,所有路都连接在十字路口上现在用最少的伞兵走完这些式子路口,每个只能走一遍很明显的最小路径覆盖最小路径覆盖=点数-最大匹配需要拆点 所有式子路口 在X中一个 在Y中一个路把两个集合中十字路口连接起来求最大匹配 还是匈牙利*/#include#includeusing namespace std;vectorv[15原创 2012-08-03 15:59:59 · 604 阅读 · 0 评论 -
poj 1325 Machine Schedule--最小点覆盖
/*题意:A机器有n(0~n-1)个模式,B机器有m(0~m-1)个模式先有k个任务需要做,可以用A机器的ai模式做或者用B机器的bi模式做任务无先后,换模式序重启,开始两个机器都在模式0问最少需要重启几次二分图最小点覆盖A的模式为X集 B的模式为Y集按任务建边求最小点覆盖任务是求最少的重启次数,也就是最少要工作在几个模式(除了0模式)只要边的任何一个端点被选中就原创 2012-08-03 14:24:16 · 451 阅读 · 0 评论 -
sgu 242 Student's Morning--最大流 或 多重匹配
/*n同学分别来自不同的学校,他们想去学校玩,但是不像一个人去,所以去某个学校的人数应>=2问是否有k个学校满足要求建边:[s,学校] 权为2[学校,同学] 权为1[同学,t] 权为1据说这题可以用匹配做,以后看看*/#include#include#define inf 0x7ffffffstruct edge{ int u,v,f,next;}e[10001原创 2012-08-01 17:02:59 · 1304 阅读 · 0 评论 -
zzuli1672--二分答案+最大匹配
#include#include#include#define max 110int xx[max],yy[max];int v[max*max][max];double map[max*max][max];int pi[max];int fang[max];int m,n,t1,t2,s;double dis(int x1,int y1,int x2,int y2){ r原创 2012-07-16 20:31:45 · 580 阅读 · 0 评论 -
hdu 4606 Occupy Cities - 计算几何 + 最短路 + 最小路径覆盖
/*hdu 4606 Occupy Cities题意:n个城市,m条障碍物,p个士兵,城市之间的路可以任意走,但是不能跨越障碍。 p个士兵分别按顺序占领城市,城市内有补给,士兵的消耗等于路程的长度。 问:为了完成任务,士兵的背包最小为多大?这是一个最小路径覆盖问题,每个士兵都可以走出一条线来。说道顺序,建图是只能从顺序靠前的城市向靠后的城市建边,这样就保证了单个士兵所走的城市复合顺原创 2013-07-26 21:22:55 · 989 阅读 · 1 评论 -
poj 2195 Going Home--最小费用最大流--spfa--动态数组--或者用 最小权匹配
/*题意:给定一个N*M的地图,地图上有若干个man和house,且man与house的数量一致。man每移动一格需花费$1(即单位费用=单位距离), 一间house只能入住一个man。现在要求所有的man都入住house,求最小费用。最小费用最大流 用到了spfa求费用最小的可改进路径仿写 http://blog.youkuaiyun.com/lyy289065406/article/deta原创 2012-07-04 16:19:54 · 712 阅读 · 0 评论 -
KM算法 最优匹配(最大权匹配) hdu 2255 奔小康赚大钱 最小权匹配 poj 2195 Going Home
最大权二分匹配问题就是给二分图的每条边一个权值,选择若干不相交的边,得到的总权值最大。解决这个问题可以用KM算法。理解KM算法需要首先理解“可行顶标”的概念。可行顶标是指关于二分图两边的每个点的一个值lx[i]或ly[j],保证对于每条边w[i][j]都有lx[i]+ly[j]-w[i][j]>=0。如果所有满足lx[i]+ly[j]==w[i][j]的边组成的导出子图中存在一个完美匹配,那么这个原创 2012-08-11 17:09:09 · 2702 阅读 · 0 评论