POJ 1469,1274,2239,2536,2584,2446二分图的匈牙利算法(裸)
2012-08-05 19:47
441 查看
POJ1469
习惯性的不写return 0;这次尝到苦头了,很幸福的WA了……找了好久才知道是这个坏毛病……
View Code
习惯性的不写return 0;这次尝到苦头了,很幸福的WA了……找了好久才知道是这个坏毛病……
View Code
#include <cstdio> #include <cmath> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int M=2010; int nx,ny; int cx[M],cy[M]; bool _map[M][M],vis[M]; bool hp[100][100]; int findpath(int u) { int i,j; for(i=0;i<ny;i++) { if(_map[u][i]&&!vis[i]) { vis[i]=1; if(cy[i]==-1||findpath(cy[i])) { cy[i]=u; cx[u]=i; return 1; } } } return 0; } int MaxMatch() { int res=0; int i,j; for(i=0;i<nx;i++) cx[i]=-1; for(j=0;j<ny;j++) cy[j]=-1; for(i=0;i<nx;i++) { if(cx[i]==-1) { for(j=0;j<ny;j++) vis[j]=0; res+=findpath(i); } } return res; } int m,n,k; int move[4][2]={{0,1},{0,-1},{1,0},{-1,0}}; int check(int x,int y) { if(x>=0&&x<m&&y>=0&&y<n&&!hp[x][y]) return 1; return 0; } int main() { int x,y; while(scanf("%d%d%d",&m,&n,&k)!=EOF) { memset(hp,0,sizeof(hp)); memset(_map,0,sizeof(_map)); for(int i=0;i<k;i++) { scanf("%d%d",&x,&y); hp[y-1][x-1]=1; } if((m*n-k)&1){printf("NO\n");continue;} nx=ny=m*n; for(int i=0;i<m;i++) for(int j=0;j<n;j++) { //printf("%d %d:\n",i,j); if((i+j)&1) if(!hp[i][j]) for(int k=0;k<4;k++) { x=i+move[k][0]; y=j+move[k][1]; if(check(x,y)) { _map[i+j*m][x+y*m]=1; //printf("map[%d][%d]\n",i+j*m,x+y*m); } } } int ans=MaxMatch(); if(ans*2==m*n-k) printf("YES\n"); else printf("NO\n"); } return 0; }
相关文章推荐
- poj-1469,1274 二分图匈牙利算法
- POJ 1469 COURSES【匈牙利算法入门 二分图的最大匹配 模板题】
- POJ 1274 / POJ 1469 / POJ 2239 二分图最大匹配
- 利用匈牙利算法&Hopcroft-Karp算法解决二分图中的最大二分匹配问题 例poj 1469 COURSES
- POJ 1469 COURSES【匈牙利算法入门 二分图的最大匹配 模板题】
- POJ 1469 COURSES (二分图最大匹配 匈牙利算法)
- POJ 1274 The Perfect Stall (二分图最大匹配入门题,匈牙利算法)
- 二分图(bfs+匈牙利算法) POJ 1469 course
- POJ1469(匈牙利算法求二分图最大匹配)
- POJ1274:The Perfect Stall(二分图最大匹配 匈牙利算法)
- POJ 1469 COURSES(匈牙利算法二分图最大匹配)
- 【匈牙利算法】 二分图模板 poj 1274
- POJ1469[COURSES] 二分图最大匹配 匈牙利算法
- 二分图简单模拟题 POJ 1274、1325、1469、2446
- poj 2446 二分图最大匹配 匈牙利算法
- poj 1469 COURSES 二分图最大匹配 匈牙利算法
- poj 2446 poj 1469 poj 1274 二分图最大匹配
- poj 1274 最大流或二分图,匈牙利算法
- POJ2536 二分图 匈牙利算法
- 【二分图最大匹配】【匈牙利算法】poj1469 COURSES && poj2446 Chessboard