HDU2717BFS
/*
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的更多相关文章
随机推荐
- 基于python的接口测试框架设计(三)接口测试的框架
基于python的接口测试框架设计(三)接口测试的框架 其实我这里用到的是unittest单元测试框架,,这个框架好就好在比较清楚,,setup terdown都可以处理一些初始化及完成后的工作 主要 ...
- 【Unity/Kinect】Kinect实现UI控件的点击
用体感来实现UI控件的点击,如点击按钮. 做法:用一个图片表示左手手掌,图片位置追踪左手手掌移动,当手掌位于UI控件的矩形内时,握拳表示点击该控件. using UnityEngine; using ...
- PDNN中数据格式和数据装载选项
吃人家嘴短,拿人家手短,用别人的东西就不要BB了,按规矩来吧. 训练和验证的数据都在命令行以变量的形式按如下方式指定: --train-data "train.pfile,context=5 ...
- 【大数据笔记】白话详解Zookeeper的一致性
下面内容主要摘抄于<<Hadoop实战>>,红色高亮部分是本人添加的白话注释. Zookeeper 是一种高性能.可扩展的服务. Zookeeper 的读写速度非常快,并且读的 ...
- Hbase 学习(一) hbase配置文件同步
最近在狂啃hadoop的书籍,这部<hbase:权威指南>就进入我的视野里面了,啃吧,因为是英文的书籍,有些个人理解不对的地方,欢迎各位拍砖. HDFS和Hbase配置同步 hbase的配 ...
- LintCode - Copy List with Random Pointer
LintCode - Copy List with Random Pointer LintCode - Copy List with Random Pointer Web Link Descripti ...
- OC基础--常用类的初步介绍与简单实用之集合类
集合类的异同点 一.NSArray\NSMutableArray *有序 *快速创建(只有不可变数组可以):@[obj1, obj2, obj3]; *快速访问元素:数组名[i] *只能存放对象 二. ...
- Windows通用知识讲解二
NMAKE Makefile是一个解释执行的工具,根据Makefile文件中的定义,编译和链接程序,最终生成文件. Makefile(Windows下是.mak文件) 定义编译和链接等操作的脚本文件( ...
- selenium测试(Java)--多表单切换(十二)
采用下面的例子来编写用例 <!DOCTYPE html> <html> <head> <meta http-equiv="content-type& ...
- 【转】 PreTranslateMessage作用和使用方法
PreTranslateMessage作用和使用方法 PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用, ...