zoukankan      html  css  js  c++  java
  • [ACM] hdu 2717 Catch That Cow (BFS)

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

    参考链接:http://blog.csdn.net/sr_19930829/article/details/26398223

    import java.util.LinkedList;
    import java.util.Queue;
    import java.util.Scanner;
    
    
    public class Main {
    	
    	static int N,K;
    	static int len=100000;
    	static int[] hash = new int[len+10];
    	static boolean[] vis = new boolean[len+10];
    	
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner sc = new Scanner(System.in);
    		N = sc.nextInt();
    		K = sc.nextInt();
    		if(N==K){
    			System.out.println(0);
    		}else
    		{
    			bfs();
    			System.out.println(hash[K]);
    		}
    
    	}
    
    	private static void bfs() {
    		// TODO Auto-generated method stub
    			Queue<node> queue = new LinkedList<node>();
    			node n = new node(N);
    			queue.offer(n);
    			vis[N] = true;
    			hash[N] = 0;
    			while(!queue.isEmpty()){
    				node temp = queue.poll(); //queue.poll() 获取并移除队头
    				int num = temp.getNum();
    				if(num+1==K||num-1==K||num*2==K){//找到
    					hash[K]=hash[num]+1;
    					break;
    				}
    				if(num-1>=0&&!vis[num-1]){
    					node m = new node(num-1);
    					queue.offer(m);
    					vis[num-1]=true;
    					hash[num-1]=hash[num]+1;
    				}
    				if(num+1<=len&&!vis[num+1]){
    					node m = new node(num+1);
    					queue.offer(m);
    					vis[num+1] = true;
    					hash[num+1] = hash[num]+1;
    				}
    				if(num*2<=len&&!vis[num*2]){
    					node m = new node(num*2);
    					queue.offer(m);
    					vis[num*2]=true;
    					hash[num*2]=hash[num]+1;
    				}
    			}
    			
    			
    		
    		
    		
    	}
    	
    	public  static class node{
    		int num;
    		public node(int num){
    			this.num = num;
    		}
    		public int getNum() {
    			return num;
    		}
    		public void setNum(int num) {
    			this.num = num;
    		}
    		
    	}
    
    	
    }
    

      没有AC不知道为什么。

  • 相关阅读:
    分段路由的复兴
    动态维护FDB表项实现VXLAN通信
    neutron dhcp 高可用
    wpf
    从0到1设计一台8bit计算机
    哇塞的Docker——vscode远程连接Docker容器进行项目开发(三)
    中通消息平台 Kafka 顺序消费线程模型的实践与优化
    飞机大战 python小项目
    看透确定性,抛弃确定性
    如何根据普通ip地址获取当前地理位置
  • 原文地址:https://www.cnblogs.com/fjl-vxee/p/6402011.html
Copyright © 2011-2022 走看看