博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1254 推箱子游戏
阅读量:6911 次
发布时间:2019-06-27

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

这个题目我就不说,链接在这里http://acm.hdu.edu.cn/showproblem.php?pid=1254

主要我想说的是,一开始是我用2个三围数组来分别标记人和箱子走过的四个方向,但不知怎么回事行不通。。。

于是就用一个四维数组来标记状态,嘻嘻,过了。。。

好吧,还是直接上代码了。。。。

1 #include
2 #include
3 #include
4 5 using namespace std; 6 int visited[8][8][8][8];//记录人和箱子的状态 7 int map[8][8]; 8 int dir[4][2]={
{-1,0},{
1,0},{
0,-1},{
0,1}};//上、下、左、右 9 int m,n;10 int px,py,sx,sy,ex,ey;11 12 struct point {13 int x,y; //人的位置14 int bx,by; //箱子的位置15 int step;16 bool operator <(const point &p) const {17 return p.step
Q; 23 point s;24 s.x=x,s.y=y,s.bx=sx,s.by=sy,s.step=0;25 Q.push(s);26 while(!Q.empty()){27 point p;28 p=Q.top();29 Q.pop();30 if(p.bx==ex&&p.by==ey){31 printf("%d\n",p.step);32 return ;33 }34 for(int i=0;i<4;i++){35 point q;36 q.x=p.x+dir[i][0];37 q.y=p.y+dir[i][1];38 q.bx=p.bx;39 q.by=p.by;40 q.step=p.step;41 if(q.x<0||q.x>=m||q.y<0||q.y>=n)42 continue;43 if(map[q.x][q.y]==1||visited[q.x][q.y][q.bx][q.by])44 continue;45 //如果找到了箱子,此时要推的方向与人的方向一致46 if(q.x==q.bx&&q.y==q.by){47 q.bx=p.bx+dir[i][0];48 q.by=p.by+dir[i][1];49 q.step+=1;50 if(q.bx<0||q.bx>=m||q.by<0||q.by>=n)51 continue;52 if(visited[q.x][q.y][q.bx][q.by]||map[q.bx][q.by]==1)53 continue;54 visited[q.x][q.y][q.bx][q.by]=1;55 }56 Q.push(q);57 visited[q.x][q.y][q.bx][q.by]=1;58 }59 }60 printf("-1\n");61 }62 63 64 int main(){65 int t;66 scanf("%d",&t);67 while(t--){68 scanf("%d%d",&m,&n);69 for(int i=0;i

 

转载地址:http://qtycl.baihongyu.com/

你可能感兴趣的文章
一个开源的仓储系统
查看>>
5.24 Declaring Attributes of Functions【转】
查看>>
利用SCORE法则来总结一次偷懒的单元测试过程
查看>>
angular中的 登录检查 和 过期Session清理
查看>>
基于FormsAuthentication的用户、角色身份认证
查看>>
阿里云-DRDS(转)
查看>>
Lua协程-测试3
查看>>
009-java中常用的单个键值对
查看>>
微软为AJAX和jQuery类库提供CDN服务
查看>>
LuoYun 开源云计算平台软件 0.2 Beta 版本发布 — LinuxTOY
查看>>
约会你的私人定制
查看>>
MD5 加密的两种方法
查看>>
Winfrom 控件移位绘制垂直、水平线
查看>>
如何开启to 日志
查看>>
android和iOS平台的崩溃捕获和收集
查看>>
sql执行计划[Oracle] 变量绑定
查看>>
[Swift A] - Welcome to Swift
查看>>
Tomcat – java.lang.OutOfMemoryError: PermGen space Cause and Solution
查看>>
python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码...
查看>>
SQL Server的镜像是基于物理块变化的复制 镜像Failover之后数据的预热问题
查看>>