搜索-G
来源:互联网 发布:python input一个元组 编辑:程序博客网 时间:2024/05/16 11:08
Description
Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.
* Walking: FJ can move from any point X to the points X - 1 or X + 1 in a single minute* Teleporting: FJ can move from any point X to the point 2 × X in a single minute.
If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?
Input
Line 1: Two space-separated integers: N and KOutput
Line 1: The least amount of time, in minutes, it takes for Farmer John to catch the fugitive cow.Sample Input
5 17Sample Output
4下面是我的AC代码:Hint
The fastest way for Farmer John to reach the fugitive cow is to move along the following path: 5-10-9-18-17, which takes 4 minutes.这道题大致的意思就是一个农夫想要去追一个在一个点不动的牛,但是农夫的行动方式只有前后移动一个或者移动两倍于该点的坐标的路程。
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<queue>using namespace std;#define MAX 100005int v[MAX];int cnt;void bfs(int n,int k){ queue<int>q; q.push(n); q.push(cnt); v[n]=1; while(!q.empty()) { n=q.front(); q.pop(); cnt=q.front(); q.pop(); if(n==k){break;} if(n-1>=0&&!v[n-1]) { q.push(n-1); q.push(cnt+1); v[n-1]=1; } if(n+1<MAX&&!v[n+1]) { q.push(n+1); q.push(cnt+1); v[n+1]=1; } if(2*n<MAX&&!v[2*n]) { q.push(2*n); q.push(cnt+1); v[2*n]=1; } }}int main(){ int n,k; cin>>n>>k; if(n>=k) { cout<<n-k; } else { cnt=0; memset(v,0,sizeof(v)); bfs(n,k); cout<<cnt; } return 0;}
阅读全文
0 0
- 搜索 G
- 搜索--G
- 搜索 G
- 搜索-G
- 搜索-G
- 搜索 G
- 搜索-G
- 搜索-G
- gcc g++ 搜索 路径
- gcc/g++搜索路径
- gcc/g++搜索路径
- 搜索专题 G
- 搜索 G题
- 搜索练习题G-07
- Problem G: 逃脱(搜索)
- linux g++ 库文件搜索路径
- Gym 100886G Maximum Product(搜索)
- 【搜索入门专题1】hdu1548 G
- SpringMVC返回数据中文乱码问题浅析
- 设计模式:抽象工厂模式(Abstract Factory)
- 微信小程序开发(二)图片上传
- android 点击快捷方式提示未安装程序的解决
- 正则表达式——详细讲解平衡组
- 搜索-G
- xutils3 批量文件上传
- C#基础之静态类
- mybatis学习:六
- C语言指针总结
- leetcode 202. Happy Number 模拟
- Linux migration 进程含义
- 在c++11中auot关键字的好与坏。
- Ubuntu离线安装无线网卡驱动