标签:搜索
Time Limit: 1000MS | Memory Limit: 30000K | |
Total Submissions: 21482 | Accepted: 11488 |
Description
Input
Output
Sample Input
6 9 ....#. .....# ...... ...... ...... ...... ...... #@...# .#..#. 11 9 .#......... .#.#######. .#.#.....#. .#.#.###.#. .#.#..@#.#. .#.#####.#. .#.......#. .#########. ........... 11 6 ..#..#..#.. ..#..#..#.. ..#..#..### ..#..#..#@. ..#..#..#.. ..#..#..#.. 7 7 ..#.#.. ..#.#.. ###.### ...@... ###.### ..#.#.. ..#.#.. 0 0
Sample Output
45 59 6 13
Source
#include<iostream> #include<string.h> #include<stdio.h> using namespace std; int r,c; char a[200][200]; int vis[200][200]; int dir[4][2]={{-1,0},{1,0},{0,-1},{0,1}}; int sum; void dfs(int i,int j) { //if(a[i][j]==‘#‘||(vis[i][j])||(i<0||j<0||(i>r-1||j>c-1))) //return; //else //{ a[i][j]=‘#‘; sum++; for(int k = 0;k < 4;k++) { int x = i+dir[k][0]; int y = j+dir[k][1]; if(a[x][y]==‘.‘&&!vis[x][y]&&x>=0&&y>=0&&x<=r-1&&y<=c-1) { dfs(x,y); vis[x][y]=1; } } //} } int main() { int i,j,x,y; while(scanf("%d%d",&c,&r),r||c) { sum=0; memset(vis,0,sizeof(vis)); memset(a,0,sizeof(a)); for(i=0;i<r;i++) { getchar(); for(j=0;j<c;j++) { a[i][j] = getchar(); if(a[i][j]==‘@‘) { x=i; y=j; } } } //count=0; dfs(x,y); cout<<sum<<endl; } }
POJ 1979 Red and Black,布布扣,bubuko.com
标签:搜索
原文地址:http://blog.csdn.net/an327104/article/details/26160797