zoukankan      html  css  js  c++  java
  • HDOJ搜索专题之Catch That Cow

    简单bfs题。

    View Code
     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <queue>
     4 #define N 150000
     5 using namespace std;
     6 queue<int>q;
     7 int n,k,t[N];
     8 void bfs()
     9 {
    10   int i;
    11   memset(t,-1,sizeof(t));
    12   while(!q.empty()) q.pop();
    13   t[n]=0;
    14   q.push(n);
    15   while(!q.empty())
    16   {
    17     i=q.front(),q.pop();
    18     if(i-1>=0 && t[i-1]==-1)
    19     {
    20       t[i-1]=t[i]+1;
    21       if(i-1==k)  return;
    22       q.push(i-1);
    23     }
    24     if(i+1<=N && t[i+1]==-1)
    25     {
    26       t[i+1]=t[i]+1;
    27       if(i+1==k)  return;
    28       q.push(i+1);
    29     }
    30     if(2*i<=N && t[2*i]==-1)
    31     {
    32       t[2*i]=t[i]+1;
    33       if(2*i==k)  return;
    34       q.push(2*i);
    35     }
    36   }
    37 }
    38 int main()
    39 {
    40   while(~scanf("%d%d",&n,&k))
    41   {
    42     if(n>=k)  printf("%d\n",n-k);
    43     else  bfs(),printf("%d\n",t[k]);
    44   }
    45   return 0;
    46 }
  • 相关阅读:
    mongodb搭建
    使用systemctl管理服务
    常用命令--find
    linux中的常用信号
    bash 中的特殊变量
    tomcat开启PID文件
    django基础入门
    Redis源码编译安装
    DRF路由组件
    Django/DRF序列化
  • 原文地址:https://www.cnblogs.com/algorithms/p/2496776.html
Copyright © 2011-2022 走看看