题意:求n到k的最小路径,  n有三种变法 n+1,n-1或者2*n;

贴个广搜的模版在这里把....

总结一下:一般涉及到求最短路的话用宽搜

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
using namespace std;
const int qq=1e5+;
int vis[qq];
int n,k;
struct num{
int x,step;
};
int check(int x)
{
if(x<||x>qq||vis[x])
return ;
return ;
}
int bfs(int x)
{
int i;
queue<num>Q;
num a,next;
a.x=x;
a.step=;
vis[x]=;
Q.push(a);
while(!Q.empty()){
a=Q.front();
Q.pop();
if(a.x==k)
return a.step;
next=a; //将三种情况加入队列、
next.x=a.x+;
if(check(next.x)){
next.step=a.step+;
vis[next.x]=;
Q.push(next);
}
next.x=a.x-;
if(check(next.x)){
next.step=a.step+;
vis[next.x]=;
Q.push(next);
}
next.x=a.x*;
if(check(next.x)){
next.step=a.step+;
vis[next.x]=;
Q.push(next);
}
}
return -;
}
int main()
{
while(cin >> n >> k){
memset(vis,,sizeof(vis));
int ans=bfs(n);
cout << ans << endl;
}
}

HDU 2717 宽搜第一题、的更多相关文章

  1. HDU 5017 Ellipsoid 模拟退火第一题

    为了补这题,特意学了下模拟退火算法,感觉算法本身不是很难,就是可能降温系数,步长等参数不好设置. 具体学习可以参见: http://www.cnblogs.com/heaad/archive/2010 ...

  2. hdu 1180(广搜好题)

    诡异的楼梯 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Subm ...

  3. HDU 1312 Red and Black 第一题搜索!

    Red and Black Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  4. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  5. POJ1426 Find The Multiple (宽搜思想)

    Find The Multiple Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 24768   Accepted: 102 ...

  6. HDU 2717 Catch That Cow --- BFS

    HDU 2717 题目大意:在x坐标上,农夫在n,牛在k.农夫每次可以移动到n-1, n+1, n*2的点.求最少到达k的步数. 思路:从起点开始,分别按x-1,x+1,2*x三个方向进行BFS,最先 ...

  7. 【宽搜】ECNA 2015 E Squawk Virus (Codeforces GYM 100825)

    题目链接: http://codeforces.com/gym/100825 题目大意: N个点M条无向边,(N<=100,M<=N(N-1)/2),起始感染源S,时间T(T<10) ...

  8. 【宽搜】Vijos P1360 八数码问题

    题目链接: https://vijos.org/p/1360 题目大意: 3x3格子上放1~8数字,一个空位,每次空位可与上下左右交换,固定终止布局,求输入的起始布局需要几步到达终止布局 题目思路: ...

  9. 【宽搜】Vijos P1206 CoVH之再破难关

    题目链接: https://vijos.org/p/1206 题目大意: 给你开始和结束两张4x4的01图,每次操作只能够交换相邻的两个格子(有公共边),问最少的操作步数. 题目思路: [搜索] 这题 ...

随机推荐

  1. SpringBoot 使用 @Value 从 YAML文件读取属性

    在 YAML中有如下配置 paypal: mode:live 在类中,通过 @Value属性读取 @Value("${paypal.mode}") private String m ...

  2. Bnd教程(1):如何用命令行安装bnd

    1. 如果你用的是MacOS,请运行: brew install bnd 然后运行bnd version看是否安装成功: $ bnd version 4.0.0.201801191620-SNAPSH ...

  3. 【JZOJ4813】【NOIP2016提高A组五校联考2】running

    题目描述 小胡同学是个热爱运动的好孩子. 每天晚上,小胡都会去操场上跑步,学校的操场可以看成一个由n 个格子排成的一个环形,格子按照顺时针顺序从0 到n-1 标号. 小胡观察到有m 个同学在跑步,最开 ...

  4. Directx11教程(18) D3D11管线(7)

    原文:Directx11教程(18) D3D11管线(7) 光栅化阶段(RS)之后,将进入PS/OM阶段. 参考外文资料:http://fgiesen.wordpress.com/2011/07/01 ...

  5. es6中的(=>)箭头函数

    x => x * x 上面的箭头函数相当于: function (x) { return x * x; } 箭头函数相当于匿名函数,并且简化了函数定义. 箭头函数有两种格式,一种像上面的,只包含 ...

  6. iOS app发布流程

    http://www.xuebuyuan.com/1980497.html http://blog.csdn.net/alincexiaohao/article/details/38725367 ap ...

  7. java8 各种时间转换方法

    java8 各种时间转换方法 本来按照常理日期时间是一个很简单的东西,只需要根据一个时间戳就可以算出当前的时间了.但这其实只是初级的想法,是因为你的项目还没有到跨时区部署的程度,一旦你的项目要部署到其 ...

  8. GIAC2019 演讲精选 | 面向未来的黑科技——UI2CODE闲鱼基于图片生成跨端代码

    一直以来, 如何从‘视觉稿’精确的还原出 对应的UI侧代码 一直是端侧开发同学工作里消耗比较大的部分,一方面这部分的工作 比较确定缺少技术深度,另一方面视觉设计师也需要投入大量的走查时间,有大量无谓的 ...

  9. Python traceback模块简单使用

    Python中的traceback模块被用于跟踪异常返回信息,可以在logging中记录下traceback. traceback.format_exc() 获取异常为字符串,保存到日志文件 try: ...

  10. jmeter循环和计数器