深度优先搜索实现抓牛问题
一 原问题链接
3278 -- Catch That Cowhttp://poj.org/problem?id=3278
二 输入和输出
1 输入
两个数,第1个数代表农夫的位置,第2个数代表牛的位置。
2 输出
农夫抓牛的最小步数
三 输入和输出样例
1 输入样例
5 17
2 输出样例
4
四 代码
package graph.poj3278;import java.util.Scanner;public class POJ3278 {static private int n;static private int k;/*** 功能描述:深度优先算法** @param t 牛的位置* @return 需要的部署* @author cakin* @date 2022/6/28* @description:*/static int dfs(int t) {if (t <= n) // 人后退步数return n - t;if (t % 2 != 0) // 人在 t+1 位置,再走一步到牛的位置, 人在 t-1 位置,再走一步到牛的位置return Math.min(dfs(t + 1) + 1, dfs(t - 1) + 1);else // 人在 t/2 的位置,再走一步到牛的位置,人直接从 n 走到 t的步数return Math.min(dfs(t / 2) + 1, t - n);}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);n = scanner.nextInt();k = scanner.nextInt();int ans = 0;if (n == 0) { // 特殊情况判断,很重要n = 1;ans = 1;}ans += dfs(k);System.out.println(ans);}
}
五 测试结果
绿色为输入,白色为输出
深度优先搜索实现抓牛问题相关推荐
- 【牛客 - 剑指offer】JZ12 矩阵中的路径 深度优先搜索DFS Java实现
文章目录 剑指offer题解汇总 Java实现 本题链接 题目 题目主要信息 方案 深度优先搜索 剑指offer题解汇总 Java实现 https://blog.csdn.net/guliguligu ...
- 一文搞懂深度优先搜索、广度优先搜索(dfs、bfs)
前言 你问一个人听过哪些算法,那么深度优先搜索(dfs)和宽度优先搜索(bfs)那肯定在其中,很多小老弟学会dfs和bfs就觉得好像懂算法了,无所不能,确实如此,学会dfs和bfs暴力搜索枚举确实利用 ...
- LeetCode算法总结-回溯法与深度优先搜索
转载自 LeetCode算法总结-回溯法与深度优先搜索 回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标.但当探索到某一步时,发现原先选择并不优或达不到目标,就退 ...
- 搜索 —— 深度优先搜索(DFS)
[概述] 深度优先搜索,是从初始状态起,利用一定的规则生成搜索树,寻找下一层任一个结点,检查是否出现目标状态,若未出现,以此状态利用规则生成再下一层任一个结点,再检查,重复过程一直到叶节点(即不能再生 ...
- 深度优先搜索(模板使用)
深度优先搜索(模板使用) 模板出处 关于模板出处,来自这里 本文仅通过例题对模板的使用进行说明. #include<cstdio> #include<cstring> #inc ...
- 持续理解DFS(深度优先搜索)
目录方便大家浏览: 博客的目的: 对DFS的概念理解: DFS的用途: 需要用到DFS的例题(来自力扣): DFS在树中的一些应用: DFS在数组中的一些应用: Last 博客的目的: 博主最近在刷有 ...
- 【算法】广度优先搜索(BFS)和深度优先搜索(DFS)
https://blog.csdn.net/raphealguo/article/details/7523411 https://blog.csdn.net/qq_41681241/article/d ...
- 基础算法·深度优先搜索
祝食用愉快XD 题目链接 (是一道胡乱出的题) U56815 来走迷宫鸭! 解题思路 深度优先搜索,如果能不碰墙地到达右下角的出口,就把旗子立起来表示找到了出口. 什么?你没听过深度优先搜索 没事,且 ...
- [C] 深度优先搜索解决连通块/染色问题——求岛的个数
本文介绍用DFS解决连通块个数问题 有关dfs的介绍见另外一篇:不撞南墙不回头--深度优先搜索 例题 宝岛探险 题目描述 一个小岛由一个主岛和一些复附属岛屿组成,该岛使用一个二维矩阵表示,其中数字表示 ...
最新文章
- Javascript鼠标滚轮事件兼容写法
- jqmobi快速开始(翻译)
- 搜索旋转排序数组—leetcode31
- java 获取所有带指定注解的类名_SXT DAY023 反射和注解
- 重磅!清华商汤开源CVPR2018超高精度人脸对齐算法LAB
- Javascript正则
- 毅航产品—模拟载板I
- Java判断文件编码格式
- DPDK设备驱动的匹配和初始化
- 面试官:Java的重写和重载有什么区别?
- 360安全杀毒软件扫描计算机病毒,360木马查杀能扫描病毒吗
- c语言网页版在线编译器_简单好用的网页版在线公式编辑器
- 中国崛起让西方乱了阵脚
- Leetcode刷题笔记 35.搜索插入位置(详细说明二分查找)
- 云上领跑 智慧贵州 中软国际与云上贵州深度合作助力政府数字化转型
- NVIDIA、CUDA、CUDNN、PyTorch安装吐血整理!!!
- Solr参数mm详解
- 从0到ros2玩rmf
- 《如何有效阅读一本书》书评
- WIN7 64位 配置JDK1.7的环境变量(百度上那么多坑爹货,乱搞真浪费时间)
热门文章
- js打印指定html页面(调用浏览器的打印功能)
- mac系统安装yarn,配置淘宝镜像失败的问题
- 分享一个好用的第三方登录框架
- IDA 插件 idbtopat.plw的用途
- java毕业设计网上书城系统mybatis+源码+调试部署+系统+数据库+lw
- Flutter Rive 多状态例子
- hdfs上传文件没有权限写入的问题解决put: Permission denied: user=root, access=WRITE
- html css 科技感异形边框,CSS边框外的小三角形+阴影效果的实现。
- css3与页面布局-概要,选择器,特殊性,刻度单位
- Flutter 、Vue、React Native 、Weex哪个好