3060 抓住那头奶牛 USACO
2017-04-24 19:36
204 查看
3060 抓住那头奶牛
USACO
时间限制: 1 s 空间限制: 16000 KB 题目等级 : 黄金 Gold 题目描述 Description农夫约翰被告知一头逃跑奶牛的位置,想要立即抓住它,他开始在数轴的N 点(0≤N≤100000),奶牛在同一个数轴的K 点(0≤K≤100000)。约翰有两种移动方式:1 分钟内从x 点移动到x+1 或x-1;1 分钟内从x 点移动到2x。假设奶牛不会移动,约翰抓住它需要多少时间?
输入描述 Input Description一行两个整数N 和K,用空格隔开。
输出描述 Output Description约翰抓住它需要的最少时间。
样例输入 Sample Input5 17
样例输出 Sample Output4
数据范围及提示 Data Size & Hint见题目
思路:广搜。
#include<iostream> using namespace std; #include<queue> struct node{ int x,step; }cur,net; queue<node>s; bool num[100000]; int n,m; void bfs() { cur.x=n; cur.step=0; s.push(cur); num =1; while(!s.empty() ) { cur=s.front() ; s.pop() ; int a=cur.x; if(a*2>0&&a*2<=100000&&!num[a*2]&&a<=m) { if(a*2==m) { cout<<cur.step+1; return ; } net.x =a*2; net.step=cur.step +1; s.push(net);; num[a*2]=1; } if(a+1>0&&a+1<=100000&&!num[a+1]) { if(a+1==m) { cout<<cur.step +1; return ; } net.x =a+2; net.step=cur.step +1; s.push(net); num[a+2]=1; } if(a-1>0&&a-1<=100000&&!num[a-1]) { if(a-1==m) { cout<<cur.step +1; return ; } net.x =a-2; net.step=cur.step +1; s.push(net);; num[a-2]=1; } } } int main() { cin>>n>>m; if(n>=m) { cout<<n-m; return 0; } bfs(); return 0; }
相关文章推荐
- codevs 3060 抓住那头奶牛 x
- 双向广搜 codevs 3060 抓住那头奶牛
- 广度优先搜索bfs与抓住那头奶牛(Catch that cow, poj3278)
- 【USACO】CODE[VS] 3060 && openjudge 2971 捉住那头牛
- bzoj 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛(floyd)
- 计算几何 usaco Fencing the Cows 圈奶牛
- poj 3278 && bzoj 1646: [Usaco2007 Open]Catch That Cow 抓住那只牛(BFS)
- BZOJ 1623: [Usaco2008 Open]Cow Cars 奶牛飞车
- 【BZOJ】1827: [Usaco2010 Mar]gather 奶牛大集会
- bzoj 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏(floyd)
- 【BZOJ 1641】【Usaco2007 Nov】Cow Hurdles 奶牛跨栏(最短路变形)
- DP-BZOJ-1616-[Usaco2008 Mar]Cow Travelling游荡的奶牛
- USACO 5.1.1 Fencing the Cows 圈奶牛 题解与分析
- bzoj 1231: [Usaco2008 Nov]mixup2 混乱的奶牛(状压DP)
- BZOJ 1646:[Usaco2007 Open]Catch That Cow 抓住那只牛
- [BZOJ] 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐
- bzoj 1231 [Usaco2008 Nov]mixup2 混乱的奶牛
- BZOJ1706: [usaco2007 Nov]relays 奶牛接力跑
- 【BZOJ】1776: [Usaco2010 Hol]cowpol 奶牛政坛
- 洛谷P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows