HDU_1242_Rescue
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1242
大意:迷宫搜索,'#'代表墙,'.'代表路,'x'代表守卫,每移动1格用1秒,杀死守卫用1秒,angel('a'表示)的朋友们(用'r'表示),要去救她,问最短时间为多少?
分析:迷宫搜索,dfs
总结:注意读题,之前做的时候以为只有一个朋友,其实有多个,所以用'a'去找'r'比较方便。注意输入,之前输入也有错误。
代码:
#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
using namespace std;
#define N 205
#define INF 0x7ffffff int n,m,minx;
int ex,ey;
char map[N][N];
bool vis[N][N];
int dir[][]= {{-,},{,},{,},{,-}}; bool inside(int x,int y)
{
if(x>=&&x<m&&y>=&&y<n)
return ;
return ;
} void dfs(int x,int y,int time)
{
if(map[x][y]=='r')
{
if(time<minx)
minx=time;
return;
}
if(map[x][y]=='#')
return;
if(time>minx)
return;
if(!inside(x,y))
return;
if(vis[x][y])
return;
vis[x][y]=;
for(int i=; i<; i++)
{
int mx=x+dir[i][];
int my=y+dir[i][];
if(map[mx][my]=='x')
dfs(mx,my,time+);
else
dfs(mx,my,time+);
}
vis[x][y]=;
} int main()
{
int sx,sy;
while(scanf("%d%d",&m,&n)!=EOF)
{
memset(vis,,sizeof(vis));
minx=INF;
for(int i=;i<m;i++)
scanf("%s",map[i]);
for(int i=; i<m; i++)
for(int j=; j<n; j++)
if(map[i][j]=='a')
{
sx=i;
sy=j;
}
//for(int i=0; i<m; i++)
// printf("%s\n",map[i]);
dfs(sx,sy,);
if(minx==INF)
printf("Poor ANGEL has to stay in the prison all his life.\n");
else
printf("%d\n",minx);
}
return ;
}
HDU_1242_Rescue的更多相关文章
随机推荐
- Android.mk文件解析
一.一个简单的Android.mk文件例如以下: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := nativ ...
- SEO 搜索引擎优化培训01
百度搜索风云榜:http://top.baidu.com/boards 页面上的因素:对搜索引擎而言
- js全局替换空格,制表符,换行符
this.value = this.value.replace(/\s+/g,'') "/ "这个是固定写法, "\s"匹配任何不可见字符,包括空格.制表符.换 ...
- 视频生成 量产 win 转 linux ffmpeg linux 安装 对批量视频的尽可能短时间生成
环境准备 Welcome to aliyun Elastic Compute Service! [root@mytest ~]# pip install baidu-aip Looking in in ...
- 关于Doctype、严格模式与混杂模式
<!Doctype> 文档声明,位于文档中的最前面的位置,处于<html>标签之前.此标签告知浏览器文档使用哪种HTML或XHTML规范. 用于告知浏览器以何种模式来渲染文档. ...
- GeHost powershell
PS C:\Users\clu\Desktop> [System.Net.Dns] | Get-Member -Static | Format-Table -AutoSize TypeName: ...
- 在java中除去字符串(String)中的换行字符(\r \n \t)
我们先来看几个例子: 例1: public class Test { public static void main(String[] args) { String s = "'sds gd ...
- hdoj--5526--欧拉回路(欧拉回路)
欧拉回路 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- js最全的十种跨域解决方案
在客户端编程语言中,如javascript和ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义.同 源策略规定跨域之间的脚本是隔离的,一个域的脚本不能访问 ...
- lodop打印图片
LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); //LODOP. ...