博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 1072 Nightmare【广搜】
阅读量:5922 次
发布时间:2019-06-19

本文共 1239 字,大约阅读时间需要 4 分钟。

分析: 给一个地图,一个人从起点开始,身上有一个定时炸弹,时间为6,每走一步花费一个时间,走到标号为4 的点上时时间重置,

        问从起点到终点最少需要经过多少步。

分析: 直接广搜,加上对状态的判重。。。

View Code
#include
#include
struct node{ int x,y,time,step;}q[1000],st,en,tt,xx;int f[8]={-1,0,0,1,0,-1,1,0};int a[10][10];int b[10][10];int v[10][10][7];int main(){ int front,rear,t,n,m,i,j,res; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); for(i=1;i<=n;i++) for(j=1;j<=m;j++) { scanf("%d",&a[i][j]); if(a[i][j]==2){ st.x=i; st.y=j; } else if(a[i][j]==3){ en.x=i; en.y=j; } } memset(v,0,sizeof(v)); front=rear=0; q[rear].x=st.x; q[rear].y=st.y; q[rear].time=6; q[rear++].step=0; v[st.x][st.y][6]=1; res=9999; while(front
=1&&tt.x<=n&&tt.y>=1&&tt.y<=m&&a[tt.x][tt.y]&&tt.time>0&&!v[tt.x][tt.y][tt.time]) { v[tt.x][tt.y][tt.time]=1; tt.step=xx.step+1; if(a[tt.x][tt.y]==4) tt.time=6; if(a[tt.x][tt.y]==3&&tt.step

转载于:https://www.cnblogs.com/dream-wind/archive/2012/05/09/2492617.html

你可能感兴趣的文章
【3y】从零单排学Redis【青铜】
查看>>
数据科学比赛经历分享——风机开裂故障预警比赛
查看>>
习题 3: 数字和数学计算
查看>>
Nginx 源码分析:ngx_hash_t(下)
查看>>
phantomjs抛出IOException
查看>>
验证码爬取并识别-云大urp教务系统大作战(1)
查看>>
docker和kubernetes docker的区别
查看>>
Debian 项目领导人职位已有三位侯选者
查看>>
11-玩转数据结构-并查集
查看>>
MODIS数据的简介和下载(六)——基于浏览器模拟登陆下载的方式以及D3L Tool开发...
查看>>
Android--List转换String,String转换List
查看>>
webstorm使用技巧
查看>>
网上总结较好的知识点以及学习步骤
查看>>
SonarQube 7.7 发布,代码质量管理平台
查看>>
轻松了解Spring中的控制反转和依赖注入(一)
查看>>
在Excel表里面插入背景图
查看>>
使用 python 获取 httpd 程序所占用物理内存
查看>>
Java 中会存在内存泄漏吗?
查看>>
工业大数据的特征
查看>>
绿联-新的网站,新的起点
查看>>