zoukankan      html  css  js  c++  java
  • hdu 1241 Oil Deposits 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241

    第一次写搜索代码 花了好大的功夫检查 看了别人的结题报告 还是错误一大堆 哎

    题目是这样的 @表示油田 *表示非油田 @与其八个方向@组成一片连续油田 一个@*组成的图 文有几片油田

    思路:没被标记找大一个@ 在使用dfs 把所有的相连的油田都标记为已查找

    然后油田片数+1;

    知道找完所有的点;

    用递归的方式实现深搜

     1 #include<iostream>
    2 #include<string>
    3 #include<queue>
    4 usingnamespace std;
    5 int ans=0;
    6 bool visit[100][100]={0};//用一个 bool数组表示是否被找过
    7 char map[100][100];//存储图形
    8 int n,m;
    9 int f[8][2]={1,0,-1,0,0,1,0,-1,1,1,1,-1,-1,-1,-1,1};//没两位表示一个方向 8个方向
    10 void dfs(int x,int y)
    11 { int i,j,k,dx,dy;
    12 visit[x][y]=1;
    13 for(i=0;i<8;i++)
    14 {
    15
    16 dx=x+f[i][0];
    17 dy=y+f[i][1];
    18 if(dx<0|| dy<0|| dx>=m || dy>=n || map[dx][dy]=='*'|| visit[dx][dy]==1)//改了很多次才改对 这就是菜鸟
                                                                                                              //打得时候忘了visit[dx][dy]==1
    19 continue;
    20 if(map[dx][dy]=='@'&& visit[dx][dy]==0)
    21 {visit[dx][dy]=1;
    22 dfs(dx,dy);//使用了递归的方式 容易理解
    23 }
    24 }
    25 return ;
    26 }
    27 int main()
    28 {
    29 int i,j;
    30 while(scanf("%d %d",&m,&n)!=EOF)
    31 {
    32 getchar();//下面要输入字符 所以要用getchar 接受回车
    33 ans=0;
    34 memset(map,0,sizeof(map));
    35 memset(visit,0,sizeof(visit));
    36 if(n==0&& m==0)
    37 {
    38 break;
    39 }
    40 for(i=0;i<m;i++)
    41 {
    42 for(j=0;j<n;j++)
    43 {
    44 scanf( "%c",&map[i][j] );
    45 }
    46 getchar();
    47 }
    48 for(i=0;i<m;i++)
    49 {
    50 for(j=0;j<n;j++)
    51 {
    52 if(visit[i][j]==0&& map[i][j]=='@')
    53
    54 {
    55 dfs(i,j);
    56 ans++;
    57 }
    58 }
    59 }
    60 printf("%d\n",ans);
    61 }
    62 //system("pause");
    63 return0;
    64 }
  • 相关阅读:
    python模块
    Django基础
    Python __str__(self)和__unicode__(self)
    Redis基本操作
    测试面试宝典
    h5页面的测试方式
    selenium IDE的使用流程
    如何安装chrome扩展程序--selenium IDE
    Selenium 中 强制等待、显示等待、隐式等待的区别
    Selenium+Python 自动化 之八种元素定位方法
  • 原文地址:https://www.cnblogs.com/yujiaao/p/2151540.html
Copyright © 2011-2022 走看看