/*
WA了12发简直不能忍! 。 题意非常简单。从正整数a变为b有三种方法:
+1,-1。*2 特殊情况一:a与b相等不须要搜索
特殊情况二:a>b时。结果必定是a-b不需搜
特殊情况三:比較坑! 。! 当 a 与 b 区别较大的时候。若一直依照三种方法产生子节点的话,
不断不断不断不断不断*2*2*2*2*2是非常easy超过数组长度的
并且当不断*2超过k之后,再次产生的新节点并没有意义。所以产生*2类型的新节点时要加推断条件 希望自己可以长记性
大家也能一起加油
*/ #include <iostream>
#include <cstdio>
#include <string>
using namespace std; #define MAXN 200000 int main()
{
int que[MAXN];
int book[MAXN];
int i,j,k,m,n,head,tail,new_pos;
while(cin>>n>>k)
{
memset(book,0,sizeof(book));
if (n==k)
{
printf("0\n");
continue;
}
if (n>k)
{
printf("%d\n",n-k);
continue;
}
head=tail=1;
que[head]=n;
while(!book[k]&&head<=tail)
{
new_pos=que[head]+1;
if (!book[new_pos])
que[++tail]=new_pos,book[new_pos]=book[que[head]]+1;
new_pos=que[head]-1;
if (!book[new_pos])
que[++tail]=new_pos,book[new_pos]=book[que[head]]+1;
new_pos=que[head]*2;
if (!book[new_pos]&&new_pos<=2*k)//这句话的后半句是精髓,试了非常多非常多次。
que[++tail]=new_pos,book[new_pos]=book[que[head]]+1;
head++;
}
cout<<book[k]<<endl;
}
return 0;
}

HDU2717BFS的更多相关文章

随机推荐

  1. Oracle PLSQL Demo - 20.弱类型REF游标[没有指定查询类型,也不指定返回类型]

    declare Type ref_cur_variable IS REF cursor; cur_variable ref_cur_variable; v_ename ); v_deptno ); v ...

  2. cocos2d-x中几种存储数据的方式

    说明:本文所论述内容均基于cocos2dx 3.0 版本. 1.UserDefault 它是cocos2d-x用来存取基本数据类型用的.保存为XML文件格式. 查看CCUserDefault文件,可以 ...

  3. Spark的任务调度

    本文尝试从源码层面梳理Spark在任务调度与资源分配上的做法. 先从Executor和SchedulerBackend说起.Executor是真正执行任务的进程,本身拥有若干cpu和内存,可以执行以线 ...

  4. 冒泡排序——PowerShell版

    继续读啊哈磊算法有感系列.上一篇是桶排序,在结尾总结了一下简化版桶排序的缺点.这一篇来说一下冒泡排序,冒泡排序可以很好的克服桶排序的缺点.下面我们先来说说冒泡排序的过程与思想—— 冒泡排序的过程: 第 ...

  5. printf家族探秘

    有一个函数,是我们从学习c语言就开始的第一天就接触的,那就是printf函数,可是这个家族的函数,带给我们的便利却不是一点半点,所以写一篇用法总结. 1.printf函数 格式化输出,可以输出八进制, ...

  6. Path类与Directory类与File类

    阅读目录 开始 Path 对路径 字符串进行操作 获得后缀 能合并路径 获取文件名 Directory和DirectoryInfo  对目录进行操作 判断目录是否存在 创建目录 删除目录 获取目录下所 ...

  7. iOS导航栏背景,标题和返回按钮文字颜色

    在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem 更改导航栏的背景和文字Col ...

  8. 基于jplayer实现歌词同步的JS音乐播放器效果

    分享一款基于jplayer实现歌词同步的JS音乐播放器效果.这是一款基于jQuery实现的音乐播放器功能代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <textare ...

  9. Object中有哪些方法?

    有一种遗憾就是,每天都见到你,但是却不关注你!等到面试的时候才后悔莫及. Object类中有9大public方法: equals:判断两个对象"相等" hashCode:获取对象的 ...

  10. Android—— 线程 thread 两种实现方法!(转)

    原文地址:http://blog.csdn.net/boyupeng/article/details/6208072 这篇文章中有三点需要提前说明一下, 一: 在android中有两种实现线程thre ...