poj 3278 Catch That Cow
来源:互联网 发布:大数据具体应用 编辑:程序博客网 时间:2024/06/15 22:27
这里写链接内容
题意 :人追头牛,有两种交通方式一种是步行,步行每次每分钟只能前进一个单位,或者后退一个单位,另一前进到种交通方式是瞬移,瞬移的话每次每分钟只能从当前位置x ,前进到位置2x ,问从n 到k最少用多少时间。
思路:我感觉很是惭愧啊, 这道题我做过的,但是呢 ,我却忘了,我刚开始用的深搜,没写出来,然后又用了最短路,还是没出来,后来我看了看自己以前写的代码,是用的广搜,后来用了广搜写了又wa了两次,因为其中的等号关系,,,,
代码
#include<stdio.h>#include<iostream>#include<string.h>#include<queue>const int N=200110;using namespace std;int n,k,i,j;int vis[N];struct node{ int x,time;};void bfs(){ queue<node>q; node a; a.x=n; a.time=0; q.push(a); while(!q.empty()) { a=q.front(); q.pop(); if(a.x==k) { printf("%d\n",a.time); return ; } if(a.x>=1&&vis[a.x-1]==0) { node b; b.x=a.x-1; vis[a.x-1]=1; b.time=a.time+1; q.push(b); } if(a.x<=k&&vis[a.x+1]==0) { node b; b.x=a.x+1; vis[a.x+1]=1; b.time=a.time+1; q.push(b); } if(a.x<=k&&vis[2*a.x]==0) { node b; b.x=2*a.x; vis[a.x*2]=1; b.time=a.time+1; q.push(b); } }}int main(){ while(~scanf("%d%d",&n,&k)) { memset(vis,0,sizeof(vis)); vis[n]=1; bfs(); } return 0;}
0 0
- poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- poj 3278 catch that cow
- poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- Poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- POJ 3278 Catch That Cow
- POJ 3278 Catch That Cow
- poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- poj 3278 Catch That Cow
- poj 3278 Catch That Cow
- POJ 3278 Catch That Cow
- POJ 3278 - Catch That Cow
- POJ 3278 Catch That Cow
- POJ 3278 Catch That Cow
- POJ-3278-Catch That Cow
- 跨域请求之二:jsonp详解
- [置顶]Android 面试题汇总
- windows7直接安装运行64位 haproxy1.5
- Node.js 文件操作
- 安卓开发之数据存储方式
- poj 3278 Catch That Cow
- 【面试编程题】-8剑指offer之解决面试题的思路
- JAVA编码规范笔记
- hdu 1829 (并查集)
- 解决javaweb乱码问题
- hadoop+spark+hive+mysql集群搭建过程
- 12种无线技术 谁将成为物联网的主旋律
- 12_Print1ToMaxOfNDights
- java方法回调