二分匹配+KM算法
文章平均质量分 64
秋天的风--
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
展开
-
hdu 2063最大匹配
#include #include int link[600],mark[600],map[600][600],m,n; int find(int u) { int i; for(i=1;i if(map[u][i]==1&&mark[i]==0) { mark[i]=1; if(link[i]==0||find(link[i])) { link[i]=u; return 1;原创 2013-11-03 00:32:28 · 555 阅读 · 0 评论 -
daning links 系列
1001 Easy Finding POJ-3740 1002 Power Stations HDOJ-3663 1003 Treasure Map ZOJ-3209 1004 Lamp HDOJ-2828 1005 whosyourdaddy HDOJ-3498 1006 Bomberman - Just Search! HDOJ-3529 1007 Squa转载 2014-05-26 18:39:53 · 585 阅读 · 0 评论 -
hdu 4862KM&最小费用最大流
/**/ #include #include #include #include using namespace std; #define inf 0x3fffffff #define N 500 struct node { int u,v,w,f,next; } bian[N*N*10]; char ss[N][N]; int ma[N][N]; int manha(int i,int原创 2014-08-05 11:33:46 · 661 阅读 · 0 评论 -
hdu 3605 二分图多重匹配
转载地址:http://www.cnblogs.com/Griselda/archive/2012/09/17/2689345.html 题意: 给出每个人适合住的星球信息和该星球能住多少人 第一行给出n m 代表有 n 个人 m 个星球 然后接下来n行每行m个数字 1代表适合第 i 个星球 0 代表不适合第 i 个星球 最后一行m个数表示第 i 个星球最多可以住多少个人 问是不是所有转载 2014-07-26 11:21:57 · 467 阅读 · 0 评论 -
hdu 1533KM算法
#include #include #include #define N 400 #define inf 999999999 int Max(int a,int b ) { return a>b?a:b; } int Min(int a,int b) { return a>b?b:a; } int map[N][N],lx[N],ly[N],s[N],t[N],link[N原创 2013-12-03 00:39:51 · 570 阅读 · 0 评论 -
hdu 1853 KM算法
#include #include #include #define N 200 #define inf 999999999 int Max(int a,int b ) { return a>b?a:b; } int Min(int a,int b) { return a>b?b:a; } int map[N][N],lx[N],ly[N],s[N],t[N]原创 2013-12-04 23:43:18 · 655 阅读 · 0 评论 -
km算法
【HDU】 2255 奔小康赚大钱 1533 Going Home 1853 Cyclic Tour 3488 Tour 3435 A new Graph Game 2426 Interesting Housing Problem 2853 Assignment 3718 Similarity 3722 Card Game 3转载 2014-05-26 18:33:19 · 554 阅读 · 0 评论 -
hdu 2255KM算法模板
#include #include #define N 400 #define inf 0x7fffffff int Max(int a,int b ) { return a>b?a:b; } int Min(int a,int b) { return a>b?b:a; } int map[N][N],lx[N],ly[N],s[N],t[N],link[N],n; int原创 2013-12-03 00:04:58 · 549 阅读 · 0 评论 -
二分匹配
通俗匹配,多重匹配 【HDU】 1068 Girls and Boys 1150 Machine Schedule 1151 Air Raid 1179 Ollivanders: Makers of Fine Wands since 382 BC. 1281 棋般游戏 14转载 2014-05-26 18:32:11 · 518 阅读 · 0 评论 -
hdu 2444 交叉染色判断二分图+二分最大匹配
/*1A 32ms*/ #include #include #define N 300 int n; struct node { int u,v,next; }bian[N*N*2]; int color[N],vis[N],link[N],visit[N],ma[N][N],f[N],head[N],yong; void addedge(int u,int v) { bian[yong].u=u原创 2014-07-19 18:56:38 · 470 阅读 · 0 评论 -
poj 1274 基础二分最大匹配
#include #include #define N 300 #define inf 0x3fffffff int mark[N],link[N],n,m; int map[N][N]; int find(int u) { int i; for(i=1;i if(!mark[i]&&map[u][i]) { mark[i]=1; if原创 2014-05-02 10:37:07 · 465 阅读 · 0 评论 -
poj 1466 最大独立集
#include #include//这个分开后男的站在一边女的站在一边,不肯能有les或者gay。最大独立集=n-最大匹配数 #define N 510 int map[N][N],n,mark[N],link[N]; int find(int u) { int i; for(i=0;i if(!mark[i]&&map[u][i]) { mark[i]=1;原创 2014-04-30 15:23:19 · 518 阅读 · 0 评论 -
poj 3041 最小点覆盖=最大匹配
#include #include #define N 510 int map[N][N],n,mark[N],link[N]; int find(int u) { int i; for(i=1;i if(!mark[i]&&map[u][i]) { mark[i]=1; if(link[i]==-1||find(link[i])) {原创 2014-04-30 15:01:16 · 610 阅读 · 0 评论 -
hdu 1179最大匹配
#include #include #define N 200 int map[N][N],visit[N],link[N],n,m; int find(int u) { int i; for(i=1;i if(map[u][i]&&visit[i]==0) { visit[i]=1; if(link[i]==0||find(link[i])) { link[i]=u; re原创 2013-12-02 20:11:40 · 609 阅读 · 0 评论 -
hdu 5093 二分匹配
/* 题意:给你一些冰岛。公共海域和浮冰,冰岛可以隔开两个公共海域,浮冰无影响 求选尽可能多的选一些公共海域点每行每列仅能选一个。 限制条件:冰山可以隔开这个限制条件。即*#*可以选两个 预处理: ***** **#*# ***** 可以按行转化 ***** **#oo ooo*# ***** 按列转化 ***0**o **ooooo oooo*oo **o**o* 因为每行每列顶多可原创 2014-11-02 17:36:21 · 1089 阅读 · 0 评论