bfs:一维坐标的移动
来源:互联网 发布:c语言标识符可分为 编辑:程序博客网 时间:2024/05/22 03:23
远古坑没填……
在一个长度为 n 的坐标轴上,蒜头君想从 A 点 移动到 B 点。他的移动规则如下:向前一步,坐标增加 1。向后一步,坐标减少 1。跳跃一步,使得坐标乘 2。蒜头君不能移动到坐标小于 0 或大于 n 的位置。蒜头想知道从 A 点移动到 B 点的最少步数是多少,你能帮他计算出来么?输入格式第一行输入三个整数 n,A,B,分别代表坐标轴长度,起始点坐标,终点坐标。(0≤A,B≤n≤5000)输出格式输出一个整数占一行,代表蒜头要走的最少步数。样例输入10 2 7样例输出3
bfs套板……
#include<bits/stdc++.h>using namespace std;int n,a,b;int vis[5001]={0},dis[5001]={0};int bfs(int x){ queue<int> q; q.push(x); vis[x]=1; int flag=0; while(!q.empty()){ int t=q.front(); int nxt[]={1,-1,t}; for(int i=0;i<3;i++){ int tx=t+nxt[i]; if(tx<0||tx>n) continue; if(vis[tx]==0){ vis[tx]=1; q.push(tx); dis[tx]=dis[t]+1; } if(tx==b) { flag=1; break; } } if(flag==1) break;//跳出外层循环 q.pop(); }}int main(){ cin>>n>>a>>b; bfs(a); cout<<dis[b]; return 0;}
阅读全文
0 0
- bfs:一维坐标的移动
- 一维坐标的移动(基础BFS)(待补)
- 移动UIView的坐标
- bfs 马的移动
- 马的移动 【bfs】
- 马的移动bfs
- 华为 OJ 坐标的移动
- HNCU1101:马的移动(BFS)
- HNCU1101:马的移动---BFS
- 马的移动 (BFS)
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- 坐标移动
- [JZOJ5454]仔细的检查
- Python高级编程-如何让字典保持有序?
- loj #6062. 「2017 山东一轮集训 Day2」Pair(线段树)
- android开发之路(1)
- python猜数字
- bfs:一维坐标的移动
- DirectX入门之添加移动摄像机
- 【爬虫学习】多进程,多线程处理
- lee720-Longest Word in Dictionary My SubmissionsBack to Contest
- 集合 --Collection 练习
- input中checkbox的checked选中状态-陈周
- java基础一
- Python高级编程-如何实现用户的历史记录功能?
- Select下拉框onchange事件获取option的value值