poj3278 Catch That Cow
来源:互联网 发布:五十知天命六十耳顺 编辑:程序博客网 时间:2024/06/06 02:44
题意:
FJ要抓奶牛。
开始输入N(FJ的位置)K(奶牛的位置)。
FJ有三种移动方法:1、向前走一步,耗时一分钟。
2、向后走一步,耗时一分钟。
3、向前移动到当前位置的两倍N*2,耗时一分钟。
问FJ抓到奶牛的最少时间。PS:奶牛是不会动的。
才开始看到这个题目 还真不知道用bfs题目来做 看到分类在搜索里面的 看了下题解 秒懂 哈哈
思路:1、如果FJ不在奶牛后面,那么他只有一步步往后移动到奶牛位置了,即N>=K时,输出N-K即可。
2、否则bfs
package 简单搜索;import java.util.Arrays;import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;/** * Created by user on 2017/8/22. */public class poj3278 { static int maxn=100001; static boolean vis[]=new boolean[maxn]; static int step[]=new int[maxn];//用来存储当前到达的地方所需要的步数 static Queue<Integer> queue=new LinkedList<Integer>(); public static void main(String args[]){ Scanner scanner=new Scanner(System.in); int n,k; n=scanner.nextInt(); k=scanner.nextInt(); Arrays.fill(vis,false); Arrays.fill(step,0); if(n>=k){ System.out.println((n-k)); }else{// if(!queue.isEmpty()){// queue.clear();// } System.out.println(bfs(n,k)); } } private static int bfs(int n,int k) { queue.offer(n); vis[n]=true; step[n]=0; int to; while (queue.size()!=0){ int from=queue.poll(); for(int i=0;i<3;i++){//三种移动情况 if(i==0){ to=from-1;//后退一步 }else if(i==1){ to=from+1;//前进一步 }else{ to=from*2;//到达两倍距离 } if(to<0||to>=maxn){ continue; } if(!vis[to]){ queue.offer(to); step[to]=step[from]+1;//到达地方等于之前出发的地方加上1 vis[to]=true; } if(to==k){//如果到达 就返回 return step[to]; } } } return 0; }}
阅读全文
0 0
- POJ3278 Catch That Cow
- poj3278 Catch That Cow
- poj3278 - Catch That Cow
- POJ3278 Catch That Cow
- POJ3278--Catch That Cow
- POJ3278 Catch That Cow
- poj3278 Catch That Cow
- poj3278 Catch That Cow
- poj3278--Catch That Cow
- POJ3278 Catch That Cow
- poj3278 Catch That Cow
- POJ3278,Catch That Cow
- poj3278--Catch That Cow
- POJ3278---Catch That Cow
- poj3278 Catch That Cow
- poj3278 catch that cow
- Catch That Cow poj3278
- Catch That Cow--poj3278
- 暑假集训 and 省赛总结
- 基于SpringBoot,SpringSession和redis的会话共享
- 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 获取同目录下多文件Hash值
- Java面试复习(四)
- poj3278 Catch That Cow
- js中的Date对象
- Linux初窥:软件包管理之(yum与源码包安装)
- zhihu-spider开源项目使用技术详
- asp.net图片上传
- Android 穿过点画平滑曲线
- codevs1214 线段覆盖(贪心,区间型)
- palindrome-number
- CentOS 7的安装