二分匹配
Kiwi21
这个作者很懒,什么都没留下…
展开
-
hdu 3605 Escape(多重匹配)
#include #include #define N 100005 #define M 13 bool map[N][M],vis[M]; int m,n,match[M][N],lim[M],num[M]; int find(int u) { for(int i=0;i<m;i++) { if(!vis[i]&&map[u][i]) { vis[i]=1; if(num原创 2014-07-30 22:39:42 · 410 阅读 · 0 评论 -
HDU 1498 50 years, 50 colors
#include #include #include using namespace std; #define size 110 int map[size][size],use[size],vis[size],ans[size],k,n,match[size]; int find(int u,int color) { int i,j; for(i=1;i<=n;i++) { if(!vi原创 2014-07-29 22:09:55 · 444 阅读 · 0 评论 -
HDU 1151 Air Raid(最小路径覆盖)
#include #include #define N 1050 int map[N][N],vis[N],match[N],m,n,k; int find(int u) { int i,j; for(i=1;i<=n;i++) { if(map[u][i]&&!vis[i]) { vis[i]=1; if(match[i]==-1||find(match[i]))原创 2014-07-29 14:31:41 · 474 阅读 · 0 评论 -
HDU 1068 Girls and Boys (二分图 最大独立子集)
#include #include #define M 510 #define N 250010 int head[M],next[N],key[N],match[M]; int use[M],num,n; void add(int u,int v) { key[num]=v; next[num]=head[u]; head[u]=num++; } int find(int原创 2014-07-29 11:03:03 · 416 阅读 · 0 评论 -
HDU 1150 Machine Schedule(最小点覆盖)
最小点覆盖 = 最大匹配数原创 2014-07-29 14:34:26 · 384 阅读 · 0 评论 -
hdu 1533 Going Home(KM)
#include #include #include #define max(a,b)(a>b?a:b) #define min(a,b)(a<b?a:b) #define inf 999999999 #define size 110 int n,m,map[size][size],lx[size],ly[size],match[size]; int visitx[size],visity[siz原创 2014-08-01 15:23:24 · 397 阅读 · 0 评论