哈理工OJ 1316 移动 II (广度优先搜索+路径打印)
来源:互联网 发布:mysql创建索引 编辑:程序博客网 时间:2024/04/29 06:08
题目链接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1316
移动 II
Time Limit: 1000 MS Memory Limit: 65536 K
Total Submit: 414(113 users) Total Accepted: 185(107 users) Rating: Special Judge: No
Description
在坐标轴[0,500]上存在两点A,B。
点A可以多次移动,每次移动需要遵循如下规则:
1.向后移动一步。
2.向前移动一步。
3.跳到当前坐标*2的位置上。
要求:利用宽搜算法编程求解从A移动到B的步数最少的方案,为使答案统一,要求搜索按照规则1、2、3的顺序进行。
Input
输入包含多组测试用例。
每组测试用例要求输入两个整数A,B。
Output
按要求输出步数最少的方案。
向后走输出”step back”。
向前走输出”step forward”。
跳跃输出”jump”。
对于每组结果需要追加一个空行。
Sample Input
5 17
5 18
3 499
Sample Output
step back
jump
jump
step forward
jump
step back
jump
step forward
jump
jump
jump
step back
jump
jump
step forward
jump
jump
step back
【题目分析】广度优先搜索找到最短路径,在找最短路径的同时把路径用数组记录下来,然后再把路径打印出来就好了。
【AC代码】
#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;int a[505],book[505],path[505];int bfs(int s,int e){ memset(book,0,sizeof(book)); memset(path,-1,sizeof(path)); queue<int>q; q.push(s); book[s]=1; while(!q.empty()) { int fr=q.front(); q.pop(); if(fr==e) { return 1; } for(int i=1;i<=3;i++) { int j; if(i==1) { j=fr-1; } if(i==2) { j=fr+1; } if(i==3) { j=fr*2; } if(j>=0&&j<=500&&book[j]==0) { book[j]=1; path[j]=fr; q.push(j); } } } return -1;}int main(){ int m,n; while(~scanf("%d%d",&m,&n)) { int sum=0; int u=n; int re=bfs(m,n); memset(a,0,sizeof(a)); while(path[u]!=-1) { if(path[u]==u-1) { a[sum++]=1;//向前走 } else if(path[u]==u+1) { a[sum++]=2;//向后走 } else { a[sum++]=3; } u=path[u]; } for(int i=sum-1;i>=0;i--) { if(a[i]==1) { printf("step forward\n"); } else if(a[i]==2) { printf("step back\n"); } else { printf("jump\n"); } } printf("\n"); } return 0;}
- 哈理工OJ 1316 移动 II (广度优先搜索+路径打印)
- 哈理工OJ 1490 咒语(BFS广度优先搜索)
- Hrbust-1316-移动 II(广度优先搜索 路径记录)
- 广度优先搜索(BFS)+路径打印
- 哈理工OJ 2035 Diablo(多次广度优先搜索+详解)
- 【算法】广度优先搜索(BFS)II
- 哈理工OJ 1621迷宫问题II(优先队列广搜)
- 哈理工oj 1913 小乐乐要下山 【数塔 + 打印路径】
- 广度优先搜索--搜索路径问题
- 深度优先搜索/广度优先搜索(解决小哈)
- 洛谷Oj-01迷宫-广度优先搜索
- 洛谷Oj-字串变换-广度优先搜索
- 迷宫最短路径 --- 广度优先搜索(广搜)
- 迷宫问题(广度优先搜索,输出最短路径)
- (原创)广度优先搜索解决最短路径问题
- 南阳理工--21--三个水杯~~广度优先搜索
- HRBUST 1316 移动 II 广搜(bfs)+路径打印
- 无权最短路径-广度优先搜索
- 转载的文章
- 博客刚开通,希望大家多多支持哈~~~~
- Tomcat性能调优
- SQL 语句
- Git基本使用方法
- 哈理工OJ 1316 移动 II (广度优先搜索+路径打印)
- oracle pl/sql集合
- mybatis-初级篇-mybatis-config.xml
- Windows批处理 - 给自己写个库(1. 路径处理)
- 我的开源之旅
- Python练习3
- Upload file to specific folder
- 关于Windows主机之间互ping不通的问题
- Java Collection Framework : Collection 接口