`
200830740306
  • 浏览: 109412 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Poj3278 广度优先搜索

阅读更多
import java.io.BufferedInputStream;
import java.util.LinkedList;
import java.util.Scanner;

/**
 * @author NC
 * Poj3278
 * 简单bfs
 */
public class Main {

    public static final int MAX = 200000;

    public static void main(String[] args) {

        Scanner scan = new Scanner(new BufferedInputStream(System.in));
        if (scan.hasNext()) {
            int n = scan.nextInt();
            int k = scan.nextInt();
            System.out.println(catchTheCow(n, k));
        }
    }

    public static int catchTheCow(int n, int k) {
        //找到
        if (n == k) {
            return 0;
        }
        LinkedList<Integer> queue = new LinkedList();
        boolean[] visited = new boolean[MAX + 5];
        int[] minutes = new int[MAX + 5];
        visited[n] = true;
        queue.add(n);
        while (!queue.isEmpty()) {
            int current = queue.removeFirst();
            for (int i = 0; i < 3; i++) {
                int next = current;
                //遍历3个方向
                if (i == 0) {
                    next++;
                } else if (i == 1) {
                    next--;
                } else if (i == 2) {
                    next <<= 1;
                }
                if (next < 0 || next > MAX) {
                    continue;
                }
                //剪枝
                if (!visited[next]) {
                    queue.add(next);
                    visited[next] = true;
                    minutes[next] = minutes[current] + 1;
                }
                //找到
                if (next == k) {
                    return minutes[k];
                }
            }
        }

        return 0;
    }
}


分享到:
评论

相关推荐

    北大POJ初级-简单搜索

    在实际编程实践中,理解并熟练运用简单搜索算法是基础,随着能力的提升,还会接触到更高级的搜索算法,如深度优先搜索(DFS)、广度优先搜索(BFS),以及二叉搜索树等更复杂的搜索结构。在POJ平台上不断挑战和解决...

    POJ算法题目分类

    * 广度优先搜索:广度优先搜索是指解决问题的广度优先搜索算法,如 poj3278、poj1426、poj3126、poj3087、poj3414。 * 简单搜索技巧和剪枝:简单搜索技巧和剪枝是指解决问题的简单搜索技巧和剪枝算法,如 poj2531、...

    poj题目分类

    * 广度优先搜索:例如 poj3278、poj1426、poj3126、poj3087、poj3414。 * 简单搜索技巧和剪枝:例如 poj2531、poj1416、poj2676、poj1129。 5. 动态规划: * 背包问题:例如 poj1837、poj1276。 * 类型 DP:...

    poj训练计划.doc

    - 广度优先搜索:如`poj3278, poj1426`。 - **动态规划** - 背包问题:如`poj1837, poj1276`。 - 简单DP:如`poj3267, poj1836`。 - **数学** - 组合数学:如`POJ3252, poj1850`。 - 数论:如`poj2635, poj...

    POJ_3131.zip_POJ 八数码_poj

    八数码问题的解题核心在于搜索算法,常见的有深度优先搜索(DFS)、宽度优先搜索(BFS)以及A*搜索等。其中,BFS通常能保证找到最短的步数,但空间复杂度较高。对于大型问题,特别是立体版本,可能会消耗大量内存。...

    acm poj300题分层训练

    4. **搜索算法**:如深度优先搜索(DFS)和广度优先搜索(BFS)。poj2488、poj3083等是DFS的练习,poj3278、poj1426等是BFS的题目。 5. **动态规划**和**数学**:poj1837、poj1276是简单的动态规划问题,poj3267、...

    poj各种分类

    #### 深度优先搜索与广度优先搜索 DFS和BFS不仅是图算法的核心,也是解决许多搜索问题的基础,如poj2488和poj3278所示。 #### 剪枝技术 在搜索过程中去除无效或低效的搜索路径,提高搜索效率,如poj2531和poj1416。...

    ACM-POJ 算法训练指南

    2. **搜索**:涉及广度优先搜索(BFS)和深度优先搜索(DFS)(poj1328, poj2109, poj2586),是解决图问题的关键。 3. **贪心算法**:通过局部最优选择来达到全局最优解的方法,如背包问题(poj3295)。 4. **动态...

    POJ题目简单分类(ACM)

    - **广度优先搜索**:如poj3278,适用于寻找最短路径。 - **搜索技巧与剪枝**:优化搜索过程,避免无效计算,如poj2531。 5. **动态规划**: - **背包问题**:如poj1837,解决有限资源下的最优化问题。 - **...

    POJ题目及答案

    例如,数据结构部分可能包括链表、栈、队列、树、图等经典结构的运用,如二叉树的遍历、图的深度优先搜索和广度优先搜索等;在图论方面,可能会遇到最小生成树、最短路径等问题;动态规划则常用于解决背包问题、最长...

    搜索入门之BFS深度优先搜索.ppt

    在本主题中,我们主要关注两种搜索算法:BFS(广度优先搜索)和DFS(深度优先搜索),特别是从入门的角度来探讨它们。 首先,搜索算法的核心在于构造解答树,这个树的根节点代表初始状态,而其他节点代表通过应用一...

    POJ 1077 算法

    这是一个典型的图搜索问题,常见的解决方法包括深度优先搜索(DFS)、广度优先搜索(BFS)以及A*搜索算法。 在八数码问题中,我们需要定义数据结构来表示当前的状态,通常是一个9个元素的一维数组,其中0代表空白...

    POJ1753-Flip Game

    本篇文章将对这个问题进行深入解析,并提供两种不同的解决方案:一种基于广度优先搜索(BFS)和位运算,另一种基于深度优先搜索(DFS)和枚举。 一、问题概述 "Flip Game" 是一个二人博弈类问题,玩家轮流操作,...

    POJ 部分题解 解题报告

    5. **PKU 1010 搜索.txt**:搜索问题通常包括深度优先搜索(DFS)、广度优先搜索(BFS)或A*搜索算法。可能需要解决路径查找、迷宫求解等问题。 6. **POJ 3468 线段树--long long VS int.txt**:线段树是处理区间...

    经典 的POJ 分类

    #### 广度优先搜索 (BFS) - **题目示例**: - POJ 2251:BFS的应用场景。 #### 其他搜索算法 - **题目示例**: - POJ 3278、POJ 1426:特殊搜索策略的应用。 - POJ 3126、POJ 3087:复杂搜索策略解决实际问题。 ...

    POJ中级搜索全部练习【解题报告+AC代码】

    中级搜索问题通常要求参赛者具备对中等难度的搜索算法如深度优先搜索(DFS)、广度优先搜索(BFS)以及其他变种搜索策略有深入的理解和应用能力。 “北大POJ中级搜索全部练习【解题报告+AC代码】”这一集合,为参与...

    北大POJ经典结题报告

    1. **算法基础**:报告可能会首先介绍一些基本的算法知识,如排序(快速排序、归并排序、堆排序等)、搜索(深度优先搜索、广度优先搜索)、图论(最短路径算法Dijkstra、Floyd-Warshall、Prim或Kruskal最小生成树...

    POJ1426-Find The Multiple【BFS+同余模】

    【标题】"POJ1426-Find The Multiple【BFS+同余模】"是一道来源于北京大学在线编程平台POJ的算法题目,主要涉及到了广度优先搜索(BFS)与同余模运算的知识点。这道题目要求解决的是寻找一个整数的倍数问题,可能...

Global site tag (gtag.js) - Google Analytics