Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
C++福利#include<cstdio> #include<cstdlib> #include<cstring> using namespace std; int ans; int n,m,kk; int a[1030]; bool sss[1030]; int aa[1030][1030]; bool tf[1030][1030]; bool ttf[1030][1030]; bool found(int x) { for(int i=1;i<=n*m;i++) { if(tf[x][i]==true && sss[i]==true) { sss[i]=false; if(a[i]==0 || found(a[i])==true) { a[i]=x; return true; } } } return false; } int main() { while(scanf("%d %d %d",&n,&m,&kk)!=EOF) { if((n*m-kk)%2!=0) { printf("NO\n"); continue; } int num=0; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { num++; aa[i][j]=num; } } int x,y; memset(tf,false,sizeof(tf)); memset(ttf,true,sizeof(ttf)); for(int i=1;i<=kk;i++) { scanf("%d %d",&x,&y); ttf[y][x]=false; } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(ttf[i][j]==false) continue; tf[aa[i][j]][aa[i-1][j]]=ttf[i-1][j]; tf[aa[i][j]][aa[i][j-1]]=ttf[i][j-1]; tf[aa[i][j]][aa[i][j+1]]=ttf[i][j+1]; tf[aa[i][j]][aa[i+1][j]]=ttf[i+1][j]; } } ans=0; memset(a,0,sizeof(a)); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { memset(sss,true,sizeof(sss)); if(found(aa[i][j])==true) ans++; } } ans/=2; if(ans == (n*m-kk)/2) printf("YES\n"); else printf("NO\n"); } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator