• 红与黑


    1216:红与黑


    时间限制: 1000 ms         内存限制: 65536 KB
    提交数: 13515     通过数: 5303

    【题目描述】

    有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。

    【输入】

    包括多组数据。每组数据的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下:

    1)‘.’:黑色的瓷砖;

    2)‘#’:白色的瓷砖;

    3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每组数据中唯一出现一次。

    当在一行中读入的是两个零时,表示输入结束。

    【输出】

    对每组数据,分别输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。

    【输入样例】

    6 9 
    ....#.
    .....#
    ......
    ......
    ......
    ......
    ......
    #@...#
    .#..#.
    0 0

    【输出样例】

    45



     代码

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int h,w;//棋盘大小 
     4 char give[25][25];//方格状态 
     5 int ans;
     6 int x,y,nx,ny;
     7 int next[4][2]={{1,0},{0,1},{-1,0},{0,-1}};//遍历方向 
     8 void dfs(int x,int y){
     9     give[x][y]='#';//将遍历过的方格改为白色,避免重复;(所过之处,寸草不生) 
    10     ans++;
    11     for(int i=0;i<4;i++)//四个遍历方向{
    12         int lx=x+next[i][0];//下一步坐标 
    13         int ly=y+next[i][1];
    14         if(lx>=0 && lx<h && ly>=0 && ly<w && give[lx][ly]=='.'){//判断无越界且方格为黑色 
    15             dfs(lx,ly);
    16         }
    17     }
    18 }
    19 int main(){
    20     while(1){
    21         cin>>w>>h;
    22         if(h==0&&w==0)break;//停止条件  
    23         getchar(); //换行符过滤 
    24         for(int i=0;i<h;i++){
    25                 cin>>give[i];//单个输入 
    26         }
    27         for(int i=0;i<h;i++){
    28             for(int j=0;j<w;j++){
    29                 if(give[i][j]=='@'){
    30                     nx=i,ny=j;//寻找出发点 
    31                 }
    32             }
    33         }
    34         ans=0;//重置答案 
    35         dfs(nx,ny);
    36         cout<<ans<<endl;
    37     }
    38     return 0;
    39 }

    之所以我一直过不去这道题的原因是ly=y=next[i][1];

    细节害死我

    这道题呐。。。说是红与黑,其实是黑与白,不信仔细看题干

  • 相关阅读:
    VS2008环境下CEGUI 0.7.1及相关工具的编译(转载 + 额外的注意事项)
    Makefile的学习
    Erlang 程序文档(转)
    erlang 二进制数据
    erlang中命令行传参,以及类型等。
    笔记:JAVA的静态变量、静态方法、静态类
    关于手机定位方案设计
    转:eclipse技巧
    DXUT CD3DArcBall类
    关于模型转向自然化思考
  • 原文地址:https://www.cnblogs.com/TFLSc1908lzs/p/13769746.html
Copyright © 2020-2023  润新知