Red and Black(水)

Red and Black

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 12138    Accepted Submission(s):
7554

Problem Description

There is a rectangular room, covered with square tiles.
Each tile is colored either red or black. A man is standing on a black tile.
From a tile, he can move to one of four adjacent tiles. But he can‘t move on red
tiles, he can move only on black tiles.

Write a program to count the
number of black tiles which he can reach by repeating the moves described above.

Input

The input consists of multiple data sets. A data set
starts with a line containing two positive integers W and H; W and H are the
numbers of tiles in the x- and y- directions, respectively. W and H are not more
than 20.

There are H more lines in the data set, each of which includes W
characters. Each character represents the color of a tile as follows.

‘.‘
- a black tile
‘#‘ - a red tile
‘@‘ - a man on a black tile(appears
exactly once in a data set)

Output

For each data set, your program should output a line
which contains the number of tiles he can reach from the initial tile (including
itself).

Sample Input

Sample Output

45

59

6

13

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4 char a[21][21];
 5 int m,n;
 6 int count=0;
 7 void dfs(int x,int y)
 8 {
 9     if(a[x][y]==‘.‘&&x<n&&x>=0&&y<m&&y>=0)
10     {
11         count++;
12         a[x][y]=‘#‘;
13         dfs(x+1,y);
14         dfs(x,y+1);
15         dfs(x,y-1);
16         dfs(x-1,y);
17     }
18 }
19 int main()
20 {
21     freopen("in.txt","r",stdin);
22     while(scanf("%d%d",&m,&n)&&m!=0&&n!=0)
23     {
24         count=0;
25         int i,j,x,y;
26         for(i=0;i<n;i++)
27         {
28             for(j=0;j<m;j++)
29             {
30                 cin>>a[i][j];
31                 if(a[i][j]==‘@‘)
32                 {
33                     x=i;y=j;
34                 }
35             }
36         }
37         a[x][y]=‘.‘;
38         dfs(x,y);
39         cout<<count<<endl;
40     }
41 }

时间: 2024-10-08 08:59:38

Red and Black(水)的相关文章

小试牛刀-搜索基础入门(杭电五题)

hdu 1241 Oil Deposits 水题,BFS,判断区域的块数. 代码清单: #include<queue> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; typedef pair<int,int>P; int m,n; char s[105][105]; int xy[8][2]=

HDU1004:Let the Balloon Rise

Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 71138    Accepted Submission(s): 26463 Problem Description Contest time again! How excited it is to see balloons floating ar

hdu 1312 Red and Black(BFS水题)

Red and Black Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9684    Accepted Submission(s): 6021 Problem Description There is a rectangular room, covered with square tiles. Each tile is colore

poj 1979 Red and Black(dfs水题)

Description There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of four adjacent tiles. But he can't move on red tiles, he can move only

Red and Black(dfs水)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 Red and Black Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 15186    Accepted Submission(s): 9401 Problem Description There is a rectangular

android 水波纹

public class MyWaveView extends View{ private ArrayList<Wave> list; private int[] colors = {Color.RED,Color.BLUE, Color.DKGRAY,Color.GREEN,Color.YELLOW}; public boolean isRunning = false; public MyWaveView(Context context) { this(context,null); } pu

POJ百道水题列表

以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight Moves1101 Gamblers1204 Additive equations 1221 Risk1230 Legendary Pokemon1249 Pushing Boxes 1364 Machine Schedule1368 BOAT1406 Jungle Roads1411 Annive

cdoj 24 8球胜负(eight) 水题

8球胜负(eight) Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/24 Description 8球是一种台球竞赛的规则.台面上有7个红球.7个黄球以及一个黑球,当然还有一个白球.对于本题,我们使用如下的简化规则:红.黄两名选手轮流用白球击打各自颜色的球,如果将该颜色的7个球全部打进,则这名选手可以打黑球,如果打进则算他胜.如果在打进自己颜色的所有球之前就把黑球打进,则

hdu5024 Wang Xifeng&#39;s Little Plot (水

http://acm.hdu.edu.cn/showproblem.php?pid=5024 网络赛 Wang Xifeng's Little Plot Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 239    Accepted Submission(s): 156 Problem Description <Dream of the