hdu 1241 Oil Deposits
#include<stdio.h> #include<string.h> char a[110][110]; int f[8][2]={{0,1},{0,-1},{-1,1},{-1,0},{-1,-1},{1,-1},{1,0},{1,1}}; int m,n; int dfs(int i,int j) { for(int k=0;k<8;k++) { int x=i+f[k][0]; int y=j+f[k][1]; if(x>=0&&y>=0&&x<m&&y<n&&a[x][y]=='@') { a[x][y]='*'; dfs(x,y); } } return 0; } int main() { int ans; char c; while(scanf("%d %d",&m,&n)!=EOF&&n!=0&&m!=0) { //memset(a,'*',sizeof(a)); getchar(); for(int i=0;i<m;i++) { for(int j=0;j<n;j++) scanf("%c",&a[i][j]); getchar(); } ans=0; for(int i=0;i<m;i++) for(int j=0;j<n;j++) { if(a[i][j]=='@') { a[i][j]='*'; ans++; dfs(i,j); } } printf("%d\n",ans); } return 0; }
简单搜素:
~~遇到奇葩的问题(运行环境:codeblocks)
当复制题目的测试数据时,最后一组数据,得不出正解!
后来输出二维数组调试时,发现
数组每行的首位置被输入了‘\n’
后来,尝试手输,结果正确!!!!!!!!!!
无厘头!你了解!坑坑!!!!!!