题目:洛谷P1588、HDU2717

题目大意:有一个人在点$n$,一头牛在点$k$,人每秒能从$x$移动到点$x+1$、$x-1$、$2x$,牛不会动,求最少多少秒后人能移动到牛所在的$k$。

思路:BFS。按照题意进行广搜。

注意:题目数据较大,如中途计算中的点$x$大于100000或小于1,则不放入队列中。

两处题目读入不太一样。

细节见代码。

C++ Code:

 #include<cstdio>
#include<queue>
#include<cstring>
using namespace std;
bool b[];
int main(){
int n,k;
while(scanf("%d%d",&n,&k)!=EOF){
if(n>=k){//特判n≥k的情况
printf("%d\n",n-k);continue;
}
queue<int>q1,q2;
q1.push(n);
q2.push();
memset(b,,sizeof(b));
b[n]=;
while(!q1.empty()){
int p=q1.front();q1.pop();
int P=q2.front();q2.pop();
int l=p-;
if(l&&b[l]){
if(l==k){
printf("%d\n",P+);break;
}
b[l]=;
q1.push(l);
q2.push(P+);
}
l=p+;
if(l<=&&b[l]){
if(l==k){
printf("%d\n",P+);break;
}
b[l]=;
q1.push(l);
q2.push(P+);
}
l=p*;
if(l<=&&b[l]){
if(l==k){
printf("%d\n",P+);break;
}
b[l]=;
q1.push(l);
q2.push(P+);
}
}
}
return ;
}

最新文章

  1. 一个简易的四则运算单元...(15.12.15 BUG更新)
  2. Android 弹出对话框Dialog充满屏幕宽度
  3. nopcommerce3.5源代码及中文语言包下载地址
  4. 【nginx网站性能优化篇(2)】反向代理实现Apache与Nginx的动静分离(LNMPA)
  5. 标准I/O的替代软件
  6. 使用webpack打包vue工程
  7. 前端面试必备的css盒子模型
  8. Nginx安装- CentOS7
  9. 【Android】Android自定义属性,attr format取值类型
  10. [redis] &lt;&lt;The little Redis book&gt;&gt;的读书笔记
  11. 开源PaaS工具CloudFoundry落地阿里云
  12. illumina support
  13. 向多页TABLE中插入数据时,新增行总是在当前页的最后一行
  14. 使用类加载器加载配置文件/getClassLoader().getResourceAsStream()
  15. underscore.js常用方法整理(慢慢完善)
  16. CString与输入输出流对象问题。
  17. Linux 解压 压缩 tar
  18. Microsoft Office Specialist (MOS) 认证考试详解---word 2010 部分
  19. nbu异地备份实施前,数据收集日志
  20. AtCoder Regular Contest 103 题解

热门文章

  1. Spring 的IOC和DI
  2. ansible --help 文档
  3. 地图API示例
  4. Django用户认证(四)自定义认证Customizing authentication
  5. vue-cli3.0 搭建项目
  6. exFAT格式
  7. “XXX.Index”不扩展类“System.Web.UI.Page”,因此此处不同意的问题
  8. 安装ftp碰到的问题及解决方法
  9. 鸟哥Linux私房菜知识点总结3到5章
  10. linux网络启动报错