这道题看上去非常麻烦,什么迷宫啊。门之类的,事实上挺简单的,就是让把与 * 连通的都置为 # 包含 * ,

直接dfs就能够了,只是我wa了好多次。。。最后居然是多读了一个换行。忘了加getchar()了,gets()函数

会把缓冲区里面的换行给读进去的。。。应该把换行去掉,血的教训啊。。

代码:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int dx[4]={-1,0,0,1};
int dy[4]={0,-1,1,0};
char a[35][85];
void dfs(int x,int y)
{
for(int i=0; i<4; i++)
{
int xx = x+dx[i];
int yy = y+dy[i];
if(a[xx][yy]==' ')
{
a[xx][yy]='#';
dfs(xx,yy);
}
}
return ;
}
int main()
{
int T;
scanf("%d",&T);
getchar();
while(T--)
{
int i =0;
int j;
memset(a,'\0',sizeof(a));
while(gets(a[i++]))
{
if(a[i-1][0]=='_')
{
i--;
break;
}
}
for(int k=0; a[k][0]!='_'; k++)
{
for(j=0; a[k][j]!='\0'; j++)
{
if(a[k][j]=='*')
{
a[k][j]='#';
dfs(k,j);
}
}
}
int k;
for( k =0; a[k][0]!='_'; k++)
puts(a[k]);
puts(a[k]);
}
return 0;
}

uva 784 Maze Exploration(简单dfs)的更多相关文章

  1. uva 784 Maze Exploration 染色 搜索水题 DFS

    染色问题,其实就是看看图上某一点能扩散多少. 用DFS解决,因为BFS不是很熟 =-=...以后要多练. 提交后32ms,优化了一下,在递归前进行判定,优化到22ms,不是优化的很好... 代码: # ...

  2. [UVA] 784 - Maze Exploration

      Maze Exploration  A maze of rectangular rooms is represented on a two dimensional grid as illustra ...

  3. 784 - Maze Exploration

    #include <stdio.h> #include <string.h> char maze[50][100]; void search(int i,int j) { if ...

  4. Red and Black(简单dfs)

    Red and Black Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  5. UVA.297 Quadtrees (四分树 DFS)

    UVA.297 Quadtrees (四分树 DFS) 题意分析 将一个正方形像素分成4个小的正方形,接着根据字符序列来判断是否继续分成小的正方形表示像素块.字符表示规则是: p表示这个像素块继续分解 ...

  6. POJ 1979 Red and Black (简单dfs)

    题目: 简单dfs,没什么好说的 代码: #include <iostream> using namespace std; typedef long long ll; #define IN ...

  7. POJ1573(Robot Motion)--简单模拟+简单dfs

    题目在这里 题意 : 问你按照图中所给的提示走,多少步能走出来??? 其实只要根据这个提示走下去就行了.模拟每一步就OK,因为下一步的操作和上一步一样,所以简单dfs.如果出现loop状态,只要记忆每 ...

  8. UVA 572 -- Oil Deposits(DFS求连通块+种子填充算法)

    UVA 572 -- Oil Deposits(DFS求连通块) 图也有DFS和BFS遍历,由于DFS更好写,所以一般用DFS寻找连通块. 下述代码用一个二重循环来找到当前格子的相邻8个格子,也可用常 ...

  9. UVa 572 - Oil Deposits (简单dfs)

    Description GeoSurvComp地质调查公司负责探測地下石油储藏. GeoSurvComp如今在一块矩形区域探測石油.并把这个大区域分成了非常多小块.他们通过专业设备.来分析每一个小块中 ...

随机推荐

  1. /etc/issue 与 /etc/issue.net 文件,telnet登陆前的显示

    在使用文本设备(关于文本设备的例子,见下面的说明)登录Linux系统之前,系统会显示一条被称作“issue”的消息: 若是通过本地文本设备(如本地终端,本地虚拟控制台等)登录,则该信息存放与/etc/ ...

  2. Morris Traversal方法遍历

    实现二叉树的遍历且只需要O(1)的空间. 参考:http://www.cnblogs.com/AnnieKim/archive/2013/06/15/MorrisTraversal.html

  3. 问候Maven3(笔记一)

    第一节:Maven 简介 百度百科:Maven 官网:http://maven.apache.org/ 第二节:Maven 安装与配置 Maven 下载:http://maven.apache.org ...

  4. Regular Expression Matching——没理解的动态规划

    Implement regular expression matching with support for '.' and '*'. '.' Matches any single character ...

  5. Linux Shell基础篇——变量

    一.Shell中的变量 注:这里所说的Shell是Bash Shell,我姑且统称为Shell. Shell中的变量分为用户自定义变量.环境变量.位置参数变量.预定义变量.在Shell中,变量的默认类 ...

  6. Android第一篇

    1. 网上下载最新版SDK,里面就有一个集成ADT的Eclipse,可以直接用. 2. 最新版SDK会在layout文件夹下有fregment.xml和activity.xml两个布局文件,如果像我这 ...

  7. find tar排除指定文件或目录操作及查找文件内容关键字

    1.find查找排除单个目录 查找当前目录或者子目录下所有.txt文件,但是跳过子目录sk find . -path "./sk" -prune -o -name "*. ...

  8. 当参数为带参数的url时怎么办?

    比如地址为:http://www.baidu.com/index.aspx?url=http://www.baidu.com/info.aspx?id=1&type=1,用Request[&q ...

  9. java EE :Servlet 接口

    Servlet 生命周期  : 调用当前 Servlet 类构造函数进行实例化 Servlet 通过调用 init () 方法进行初始化 Servlet 调用 service() 方法来处理客户端的请 ...

  10. CentOS7 logstash配置部署

    (1)logstash介绍 `Logstash是一个开源的数据收集引擎,可以水平伸缩,而且logstash是整个ELK当中拥有最多插件的一个组件,其可以接收来自不同源的数据并统一输入到指定的且可以是不 ...