题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2717

题解:一维简单BFS,详细看代码,0ms。

  1. #include<cstdio>
  2. #include<queue>
  3. using namespace std;
  4. const int maxn=;
  5. bool v[maxn];
  6. int n,k;
  7. struct nd{
  8. int x,step;
  9. };
  10. bool check(int x){
  11. if(x<||x>||v[x])return false;
  12. else return true;
  13. }
  14. int bfs(int s){
  15. for(int i=;i<=;i++)v[i]=false;//初始化标记
  16. queue<nd>Q;
  17. nd S;
  18. S.x=s,S.step=;
  19. v[s]=;
  20. Q.push(S);
  21. while(!Q.empty()){
  22. nd now=Q.front();Q.pop();
  23. if(now.x==k)return now.step;
  24. if(check(now.x+)){
  25. nd tmp;tmp.x=now.x+,tmp.step=now.step+;
  26. v[tmp.x]=;
  27. Q.push(tmp);
  28. }
  29. if(check(now.x-)){
  30. nd tmp;tmp.x=now.x-,tmp.step=now.step+;
  31. v[tmp.x]=;
  32. Q.push(tmp);
  33. }
  34. if(check(now.x*)){
  35. nd tmp;tmp.x=now.x*,tmp.step=now.step+;
  36. v[tmp.x]=;
  37. Q.push(tmp);
  38. }
  39. }
  40. return -;
  41. }
  42. int main(){
  43. while(~scanf("%d%d",&n,&k)){
  44. if(n>=k){printf("%d\n",n-k);continue;}//剪枝
  45. int ans=bfs(n);
  46. printf("%d\n",ans);
  47. }
  48. return ;
  49. }

hdu_2717_Catch That Cow_bfs的更多相关文章

  1. HDU_2717_Catch That Cow

    很短的 BFS 队列 HDU_2717_Catch That Cow #include<iostream> #include<algorithm> #include<cs ...

  2. Catch That Cow_bfs

    Catch That Cow 题目大意:FrammerJohn找奶牛,给出n和k.FJ在n处.每次他可以向左移动一格.向右移动一格或者移动到自己当前格子数乘2的地方.求FJ最少移动多少次.其中,FJ和 ...

随机推荐

  1. Token注解防止表单的重复提交

    注解的一些基础: 参见http://blog.csdn.net/duo2005duo/article/details/50505884和 http://blog.csdn.net/duo2005duo ...

  2. jquery插件autoComplete自动弹出

    导入 <link rel="stylesheet" href="${ctx }/static/plugins/jQuery-autoComplete-master/ ...

  3. scip学习

    最近在学习scip  准备把里面比较有价值的题分别用lisp和c语言写出来.这样或许能更加深入的理scheme的函数式编程. tip:我用的c语言环境是vs2015,lisp环境为Drracket;

  4. Salesforce自主学习(一)

    Salesforce学习--接触Apex: 学习目标: 1.描述出Apex程序语言的关键特点: 2.保存一个Apex类并用另一个Apex类来调用它的方法: 3.使用Developer Console检 ...

  5. 网络爬虫-获取infoq里的测试新闻保存至html

    用java+webdriver+testng实现获取infoq里的测试新闻,获取文章标题和内容,保存至html文件 前提条件: 已安装好java环境,工程导入了webdriver的jar包和testn ...

  6. js注入 mooc

    javascript:(function(){try{var a=document.createElement('SCRIPT');a.type='text/javascript',a.src='// ...

  7. vue对比其他框架

    对比其他框架 React React 和 Vue 有许多相似之处,它们都有: 使用 Virtual DOM 提供了响应式(Reactive)和组件化(Composable)的视图组件. 将注意力集中保 ...

  8. #js#简单的在线计算器

    啊因为懒得去找素材了,所以做了一个仿win10计算器的灰白色计算器. 参考:http://www.html5tricks.com/jquery-calculator.html HTML源码: < ...

  9. sqlserver 操作xml

    1.xml.exist    输入为XQuery表达式,返回0,1或是Null.0表示不存在,1表示存在,Null表示输入为空 2.xml.value    输入为XQuery表达式,返回一个SQL ...

  10. 深入理解java回调机制

    Callback的定义 一般在程序中执行回调函数是,是知道回调函数是预留给系统调用的,而且知道该函数的调用时机. 比如说android应用定义一个button对象,并给按钮添加一个监听事件," ...