标签:algorithm direct space 完全 const else oid ace string
#define _CRT_SECURE_NO_DEPRECATE #include<iostream> #include<stdio.h> #include<algorithm> #include<queue> #include<set> #include<vector> #include<cstring> #include<string> #include<cmath> using namespace std; const int N_MAX = 100 + 5; int n, m; char field[N_MAX][N_MAX]; int direction[4][2] = { {0,1},{0,-1},{-1,0},{1,0} }; void dfs(const int& x,const int& y,const char& c) { field[x][y] = ‘*‘; for (int i = 0; i < 4; i++) { int dx = x + direction[i][0], dy = y + direction[i][1]; if (dx >= 0 && dx <= n+1&&dy >= 0 && dy <= m+1&&field[dx][dy] == c)dfs(dx, dy, c); } } int main() { while (scanf("%d%d",&n,&m)!=EOF) { for (int i = 1; i < n+1;i++) { for (int j = 1; j < m+1;j++) { scanf(" %c",&field[i][j]); } } for (int i = 0; i < n + 2; i++)field[i][0] = ‘0‘,field[i][m + 1] = ‘0‘; for (int i = 0; i < m + 2; i++)field[0][i] = ‘0‘, field[n + 1][i] = ‘0‘; int num_0 = 0,num_1=0; for (int i = 0; i < n+2; i++) { for (int j = 0; j < m+2; j++) { if (field[i][j] == ‘0‘) { num_0++; dfs(i, j, ‘0‘); } if (field[i][j] == ‘1‘) { num_1++; dfs(i,j,‘1‘); } } } if (num_0 == 2 && num_1 == 1) printf("0\n"); else if(num_0==1&&num_1==1) printf("1\n"); else printf("-1\n"); } return 0; }
标签:algorithm direct space 完全 const else oid ace string
原文地址:http://www.cnblogs.com/ZefengYao/p/7351537.html