标签:数字 turn open clu while ram map params images
4 ..BW ...B .... ....
15 1
感觉样例有点bug,但是题目中有一句话:
输入数据中保证所有的目,不是被黑棋包裹,就是被白棋包裹
所以就可以愉快的暴力了
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<queue> 6 using namespace std; 7 const int MAXN=101; 8 const int maxn=0x7fffff; 9 void read(int &n) 10 { 11 char c=‘+‘;int x=0;bool flag=0; 12 while(c<‘0‘||c>‘9‘){c=getchar();if(c==‘-‘)flag=1;} 13 while(c>=‘0‘&&c<=‘9‘) 14 x=(x<<1)+(x<<3)+c-48,c=getchar(); 15 flag==1?n=-x:n=x; 16 } 17 char map[MAXN][MAXN]; 18 int vis[MAXN][MAXN]; 19 int xx[5]={-1,+1,0,0}; 20 int yy[5]={0,0,-1,+1}; 21 int n; 22 void dfs(int x,int y) 23 { 24 vis[x][y]=1; 25 for(int i=0;i<4;i++) 26 { 27 int wx=x+xx[i]; 28 int wy=y+yy[i]; 29 if(!vis[wx][wy]&&wx>=1&wx<=n&&wy>=1&&wy<=n&&map[wx][wy]==‘.‘) 30 dfs(wx,wy); 31 32 } 33 } 34 int main() 35 { 36 37 read(n); 38 for(int i=1;i<=n;i++) 39 for(int j=1;j<=n;j++) 40 cin>>map[i][j]; 41 for(int i=1;i<=n;i++) 42 for(int j=1;j<=n;j++) 43 if(!vis[i][j]&&map[i][j]==‘B‘) 44 dfs(i,j); 45 int ans=0; 46 for(int i=1;i<=n;i++) 47 for(int j=1;j<=n;j++) 48 if(vis[i][j]) 49 ans++; 50 printf("%d %d",ans,n*n-ans); 51 return 0; 52 }
标签:数字 turn open clu while ram map params images
原文地址:http://www.cnblogs.com/zwfymqz/p/7214739.html