hdu 6113
2017-08-13 13:56
99 查看
#include<iostream> #include<cstdio> #include<cstring> using namespace std; bool vis[210][210]; char mp[210][210]; int wasd[4][2]={-1,0,1,0,0,1,0,-1}; int n,m; int x,y; void dfs(int i,int j,char q) { if(i<0||i>=n||j<0||j>=m||vis[i][j]==1||mp[i][j]!=q)return; vis[i][j]=1; for(int k=0;k<4;k++) { x=i+wasd[k][0]; y=j+wasd[k][1]; dfs(x,y,q); } return; } int main() { int cnt[2]; while(~scanf("%d%d",&n,&m)) { memset(vis,0,sizeof vis); cnt[0]=0;cnt[1]=0; for(int i=0;i<n;i++) { scanf("%s",mp[i]); } for(int i=0;i<n;i++) { if(!vis[i][0]&&mp[i][0]=='0') dfs(i,0,'0'); if (!vis[i][m-1]&&mp[i][m-1]=='0') dfs(i,m-1,'0'); } for(int i=0;i<m;i++) { if(!vis[0][i]&&mp[0][i]=='0') dfs(0,i,'0'); if(!vis[n-1][i]&&mp[n-1][i]=='0') dfs(n-1,i,'0'); } cnt[0]++; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(vis[i][j]==0) { dfs(i,j,mp[i][j]); cnt[mp[i][j]-'0']++; } } } if(cnt[0]==2&&cnt[1]==1) printf("0\n"); else if((cnt[0]==1&&cnt[1]==1)||(cnt[1]==1&&cnt[0]==0)) printf("1\n"); else printf("-1\n"); } return 0; }
相关文章推荐
- hdu 6113 度度熊的01世界
- HDU 6113 度度熊的01世界(简单dfs)
- 2018.3.1【 HDU - 6113 】解题报告(百度之星初赛,BFS,DFS,图像处理)
- 2017"百度之星"程序设计大赛 - 初赛(A)1006——HDU 6113
- 2017"百度之星"程序设计大赛 - 初赛(A) [ hdu 6108 小C的倍数问题 ] [ hdu 6109 数据分割 ] [ hdu 6110 路径交 ] [ hdu 6112 今夕何夕 ] [ hdu 6113 度度熊的01世界 ]
- HDU 6113 度度熊的01世界 (暴力dfs)
- 【判连通】HDU 6113 度度熊的01世界
- HDU-6113
- HDU 6113 度度熊的01世界
- HDU-6113
- HDU - 6113 度度熊的01世界 (2017"百度之星"程序设计大赛 - 初赛(A)1006)
- 【dfs】hdu 6113 度度熊的01世界
- HDU -- 6113 度度熊的01世界 【搜联通块 + 思维】
- HDU 6113 度度熊的01世界(dfs)
- HDU 6113 度度熊的01世界 【DFS】(2017"百度之星"程序设计大赛 - 初赛(A))
- 2017百度之星初赛A-1006(HDU-6113)
- 2017 百度之星 Round 2 - Hdu 6108,6112,6113
- HDU 6113 度度熊的01世界 【DFS】(2017"百度之星"程序设计大赛 - 初赛(A))
- 2017百度之星初赛A-1006(HDU-6113)
- HDU 6113 度度熊的01世界 (DFS