[kuangbin带你飞]专题一 简单搜索-C - Catch That Cow
2017-04-13 19:40
435 查看
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 K
Output
Line 1: The least amount of time, in minutes, it takes for Farmer John to catch the fugitive cow.
Sample Input
5 17
Sample Output
4
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.
wa了两次,开始把数据域控制在0-200000之间,结果超时了,仔细考虑一下会发现,其实不会到200000,控制在0-100100就可以了
* 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 K
Output
Line 1: The least amount of time, in minutes, it takes for Farmer John to catch the fugitive cow.
Sample Input
5 17
Sample Output
4
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.
wa了两次,开始把数据域控制在0-200000之间,结果超时了,仔细考虑一下会发现,其实不会到200000,控制在0-100100就可以了
#include"iostream" #include<queue> #include"string.h" using namespace std; int n,k; bool sign[200007]; struct node{ int x,step; }; bool check(int a) { if(!sign[a]&&a>=0&&a<110000) return true; return false; } void bfs() { node mm,nn; mm.x=n; mm.step=0; queue<node> jj; jj.push(mm); sign =true; while(!jj.empty()) { nn=jj.front(); jj.pop(); if(nn.x==k) { cout<<nn.step<<endl; return; } mm=nn; mm.x++; mm.step++; if(check(mm.x)) { sign[mm.x]=true; jj.push(mm); } mm=nn; mm.x--; mm.step++; if(check(mm.x)) { sign[mm.x]=true; jj.push(mm); } mm=nn; mm.x=2*mm.x; mm.step++; if(check(mm.x)) { sign[mm.x]=true; jj.push(mm); } } } int main() { 4000 cin>>n>>k; memset(sign,0,sizeof(sign)); bfs(); return 0; }
相关文章推荐
- [kuangbin带你飞]专题一 简单搜索 C - Catch That Cow poj 3278
- [kuangbin带你飞]专题一 简单搜索C - Catch That Cow(POJ 3278)
- [kuangbin带你飞]专题一 简单搜索 Catch That Cow : bfs
- [kuangbin带你飞]专题1 简单搜索 C - Catch That Cow POJ - 3278
- [kuangbin带你飞]专题一 简单搜索-C - Catch That Cow POJ - 3278
- [kuangbin带你飞]专题一 简单搜索 -C - Catch That Cow
- [kuangbin带你飞]专题一 简单搜索 - C - Catch That Cow
- Kuangbin专题 - 简单搜索 -C - Catch That Cow
- POJ 3278 Catch That Cow(kuangbin带你飞 专题一:简单搜索)
- [kuangbin]专题一 简单搜索 C - Catch That Cow
- kuangbin带你飞专题一(搜索)C - Catch That Cow
- [kuangbin带你飞]专题一 简单搜索 - L - Oil Deposits
- POJ 3087 Shuffle'm Up(kuangbin带你飞 专题一:简单搜索)专题一完结
- Fire Game [kuangbin带你飞]专题一 简单搜索
- [kuangbin带你飞]专题1——简单搜索——母牛翻转问题
- [kuangbin带你飞]专题一 简单搜索F - Prime Path(POJ 3126)
- [kuangbin带你飞]专题一 简单搜索 - F - Prime Path
- [kuangbin带你飞]专题一 简单搜索 B - Dungeon Master(POJ 2251)
- [kuangbin带你飞]专题一 简单搜索H - Pots(POJ 3414)
- [kuangbin带你飞]专题一 简单搜索E - Find The Multiple(POJ 1426)