首页 > 代码库 > hud 1312 Red and Black
hud 1312 Red and Black
题目:
链接:点击打开链接
题意:
DFS搜索
算法:
dfs
思路:
简单题
代码:
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int w,h; char s[30][30]; int vis[30][30]; int cnt; void dfs(int x,int y) { if(s[x][y] == '#' || vis[x][y]) return ; if(x>=h || y>=w || x<0 || y<0) return ; if(s[x][y] == '@' && vis[x][y] == 0) { ++cnt; } if(s[x][y] == '.' && vis[x][y] == 0) { ++cnt; s[x][y] = '@'; } vis[x][y] = 1; dfs(x-1,y); dfs(x,y-1); dfs(x,y+1); dfs(x+1,y); } int main() { //freopen("input.txt","r",stdin); while(scanf("%d%d",&w,&h) != EOF && (w || h)) { memset(vis,0,sizeof(vis)); memset(s,0,sizeof(s)); getchar(); for(int i=0; i<h; i++) gets(s[i]); cnt = 0; for(int i=0; i<h; i++) { for(int j=0; j<w; j++) { if(s[i][j] == '@' && vis[i][j] == 0) { dfs(i,j); } } } cout<<cnt<<endl; } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。