zoukankan      html  css  js  c++  java
  • 红与黑

    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];

    细节害死我

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

  • 相关阅读:
    Asp.Net Web API 2第八课——Web API 2中的属性路由
    Asp.Net Web API 2第七课——Web API异常处理
    Asp.Net Web API 2第六课——Web API路由和动作选择
    Asp.Net Web API 2第五课——Web API路由
    开始学习python
    BMI 小程序 购物车
    深浅copy 文件操作
    字典 dict 集合set
    基本数据类型 (str,int,bool,tuple,)
    python 运算符
  • 原文地址:https://www.cnblogs.com/TFLSc1908lzs/p/13769746.html
Copyright © 2011-2022 走看看