概述
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main
{
final static public int maxn=100005;
public static int []vis=new int [maxn];
public static int n,k;
public static class node
{
int x,step;
node(){};
node(int x,int step)
{
this.x=x;
this.step=step;
}
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
Scanner cin=new Scanner(System.in);
while(cin.hasNext())
{
n=cin.nextInt();
k=cin.nextInt();
int s=bfs(n);
System.out.println(s);
}
}
private static int bfs(int m)
{
// TODO Auto-generated method stub
Arrays.fill(vis, 0);
Queue<node>q=new LinkedList<node>();
node s=new node(m,0);
vis[m]=1;
q.add(s);
while(!q.isEmpty())
{
s=q.peek();
q.poll();
if(s.x==k)
return s.step;
for(int i=0;i<3;i++)
{
if(i==0)
{
node w=new node();
w.x=s.x+1;
if(w.x>=0&&w.x<maxn&&vis[w.x]==0)
{
w.step=s.step+1;
vis[w.x]=1;
q.add(w);
}
}
if(i==1)
{
node w=new node();
w.x=s.x-1;
if(w.x>=0&&w.x<maxn&&vis[w.x]==0)
{
w.step=s.step+1;
vis[w.x]=1;
q.add(w);
}
}
if(i==2)
{
node w=new node();
w.x=s.x*2;
if(w.x>=0&&w.x<maxn&&vis[w.x]==0)
{
w.step=s.step+1;
vis[w.x]=1;
q.add(w);
}
}
}
}
return 0;
}
}
最后
以上就是个性跳跳糖为你收集整理的广搜(bfs)——Catch the cow的全部内容,希望文章能够帮你解决广搜(bfs)——Catch the cow所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复