poj3278
来源:互联网 发布:影视后期特效合成软件 编辑:程序博客网 时间:2024/05/16 13:59
import java.util.Scanner;
class Data{
public int posi;
public int step;
public Data(int posi, int step) {
this.posi = posi;
this.step = step;
}
public int getPosi() {
return posi;
}
public int getStep() {
return step;
}
}
class Queue{
public Data[] myData=new Data[10000000];
public int front=0;
public int rear=0;
public void push(Data mydata){
myData[rear++]=mydata;
}
public Data pop( ){
return myData[front++];
}
public boolean isEmpty( ){
return front==rear;
}
}
public class Main {
public static int[] visit;
public static void bFS(int x1,int x2){
Data oriData=new Data(x1,0);
Queue myQueue=new Queue();
myQueue.push(oriData);
while(!myQueue.isEmpty()){
Data curData=myQueue.pop();
int curposi=curData.posi;
int curstep=curData.step;
if(curposi==x2){
System.out.println(curstep);
break;
}
Data nextData;
int nextposi=curposi-1;
if(nextposi>=0&&nextposi<=100000&&visit[nextposi]==0){
visit[nextposi]=1;
nextData=new Data(nextposi,curstep+1);
myQueue.push(nextData);
}
nextposi=curposi+1;
if(nextposi>=0&&nextposi<=100000&&visit[nextposi]==0){
visit[nextposi]=1;
nextData=new Data(nextposi,curstep+1);
myQueue.push(nextData);
}
nextposi=curposi*2;
if(nextposi>=0&&nextposi<=100000&&visit[nextposi]==0){
visit[nextposi]=1;
nextData=new Data(nextposi,curstep+1);
myQueue.push(nextData);
}
}
}
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
int K=sc.nextInt();
visit=new int[100001];
bFS(N,K);
}
}
class Data{
public int posi;
public int step;
public Data(int posi, int step) {
this.posi = posi;
this.step = step;
}
public int getPosi() {
return posi;
}
public int getStep() {
return step;
}
}
class Queue{
public Data[] myData=new Data[10000000];
public int front=0;
public int rear=0;
public void push(Data mydata){
myData[rear++]=mydata;
}
public Data pop( ){
return myData[front++];
}
public boolean isEmpty( ){
return front==rear;
}
}
public class Main {
public static int[] visit;
public static void bFS(int x1,int x2){
Data oriData=new Data(x1,0);
Queue myQueue=new Queue();
myQueue.push(oriData);
while(!myQueue.isEmpty()){
Data curData=myQueue.pop();
int curposi=curData.posi;
int curstep=curData.step;
if(curposi==x2){
System.out.println(curstep);
break;
}
Data nextData;
int nextposi=curposi-1;
if(nextposi>=0&&nextposi<=100000&&visit[nextposi]==0){
visit[nextposi]=1;
nextData=new Data(nextposi,curstep+1);
myQueue.push(nextData);
}
nextposi=curposi+1;
if(nextposi>=0&&nextposi<=100000&&visit[nextposi]==0){
visit[nextposi]=1;
nextData=new Data(nextposi,curstep+1);
myQueue.push(nextData);
}
nextposi=curposi*2;
if(nextposi>=0&&nextposi<=100000&&visit[nextposi]==0){
visit[nextposi]=1;
nextData=new Data(nextposi,curstep+1);
myQueue.push(nextData);
}
}
}
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
int K=sc.nextInt();
visit=new int[100001];
bFS(N,K);
}
}
0 0
- POJ3278
- POJ3278
- POJ3278
- poj3278
- poj3278
- poj3278
- POJ3278
- POJ3278
- poj3278
- poj3278
- poj3278
- POJ3278
- poj3278
- poj3278
- poj3278
- poj3278
- POJ3278
- POJ3278
- 第一次求职 2016.12.22
- Parameter下拉列表
- gem5学习0——模拟器简介
- 2017年,哪些语言最受青睐
- leetcode-94. Binary Tree Inorder Traversal
- poj3278
- JSON字符串、JSON对象的区别与两者之间的相互转换
- 互联网公司产品经理要求及需要掌握的技能
- 自定义Android中edittext中的hint文本的大小
- 一起talk C栗子吧(第一百九十六回:C语言实例--DIY less命令五 )
- Trafodion 创建多Column Families表
- Socket学习 - 开启Socket学习之旅
- xcode 对react-native的开发问题
- DataTable转List