poj 3278 广度优先搜索

广度优先搜索--抓住那头牛(poj 3278) 描述 农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0 1、从X移动到X-1或X+1,每次移动花费一分钟 2、从X移动到2*X,每次移动花费一分钟 假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛? 输入两个整数,N和K 输出一个整数,农夫抓到牛所要花费的最小分钟数 样例输入 5 17 阅读详情
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Scanner;

public class Test3287 {

	public static final int MAX = 20000;

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		while (scan.hasNext()) {
			int n = scan.nextInt();
			int k = scan.nextInt();
			System.out.println(bfs(n, k));
		}

	}
	
	public static int bfs(int n, int k) {
		LinkedList<Integer> queue = new LinkedList<Integer>();
		boolean[] visited = new boolean[MAX + 5];
		Arrays.fill(visited, false);
		int[] ways = new int[MAX+5];
		ways[n] = 0;
		queue.add(n);
		visited[n] = true;
		
		
		if(n == k) {
			return 0;
		}
		
		while (!queue.isEmpty()) {
			int count = queue.removeFirst();
			for (int i = 1; i <= 3; i++) {
				int next = count;
				if (i == 1) {
					next--;
				}
				if (i == 2) {
					next++;
				}
				if (i == 3) {
					next *= 2;
				}

				if (next < 0 || next > MAX) {
					continue;
				}

				if (!visited[next]) {
					queue.add(next);
					visited[next] = true;
					ways[next] = ways[count] + 1;
				}

				if (next == k) {
					return ways[next];
				}
				
				
			}
			
		}
		
		return 0;
	}

}


这道题让我知道了,广搜与深搜的区别。

广搜求最优解,由队列(先进先出)实现。深搜是求的全部解,递归实现。

 

 

抓住那头牛(POJ3278) 抓住那头牛(POJ3278) 题目: https://cn.vjudge.net/problem/POJ-3278 代码如下: //#include&lt;bits/stdc++.h&gt; #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;queue&gt; #include&lt;cstring&gt; using name... 阅读详情

相关推荐

从原理图到PCB:基于Allegro的8槽PXIe背板高速设计实战

本文详细介绍了基于Allegro软件进行8槽PXIe背板高速设计的完整实战流程。从理解规范、原理图设计、PCB布局规划,到高速PCIe差分对与精密时钟的布线艺术,再到电源与地处理以及最终的设计验证与生产文件输出,系统性地阐述了确保背板信号完整性、电源完整性和系统稳定性的关键技术与工程实践。

weixin_28312391的博客 209

广度搜索--POJ 3278 (经典入门级的广度优先搜索)

poj3278:catch the cow 这里贴上的都是原题,没有附上翻译的版本,大家英语都是杠杠的,想必都是无障碍阅读,实在读不懂,可以百度一下意思。 description: Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He s...

weixin_34128501的博客 349

Flink实战项目——城市交通实时监控平台

本项目是与公安交通管理综合应用平台、机动车缉查布控系统等对接的,并且基于交通部门现有的数据平台上,进行的数据实时分析项目。

yangwei2048的博客 839

poj 1426 Find The Multiple——bfs广度优先搜索

Find The Multiple Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m cont

five_east_west的博客 176

C#上位机实战:借助NetToPLCSim与西门子S7-1200仿真通信全攻略

本文详细介绍了如何使用C#开发上位机程序,通过NetToPLCSim与西门子S7-1200进行仿真通信的全过程。从环境准备、PLC仿真环境搭建、网络配置到C#代码实现,提供了完整的实战指南和常见问题解决方案,帮助开发者快速掌握工业自动化通信技术。

weixin_30596343的博客 441

智能水下机器人设计: 基于MATLAB的水下机器人动力学建模和控制系统设计,包括水下环境感知、路径规划和任务执行等

智能水下机器人是指能够在水下自主完成各种任务的机器人,例如探测、勘察、救援等。它具有广阔的应用前景,可用于海洋环境监测、水下考古、海上作业等领域。基于MATLAB的水下机器人设计可以为科研人员和工程师提供强大的建模和仿真工具,帮助他们设计更智能、更高效的水下机器人。智能水下机器人是未来海洋科技发展的重要方向,它将为海洋科学研究、水下考古和海上作业等领域带来新的机遇。MATLAB是一种功能强大的数学和科学计算软件,它可以为智能水下机器人设计提供强大的工具和支持。

走向CTO的路上... 965

POJ 3126-Prime Path-广度优先搜索bfs

Prime Path Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 15440   Accepted: 8707 Description The ministers of the cabinet were quite upset by

柳婼 の blog 616

SKUA-GOCAD入门教程-第六节

DisplayElements窗口是用于浏览和处理项目数据的工具,包含多个数据浏览器,如模型列表、对象、未分类对象、属性数据及资源数据。

江洋大葱的博客 985

poj3278广度优先搜索(BFS)

哎,还是在看了人家的代码情况下才做出来的,没事,能学会就行啦,用的是c++上的stl中的函数,定义的队列,比C语言上自己定义好用多了,嘿嘿,poj上的题目真不简单,比其他oj要难我觉得,起码是比hdu oj的要难,毕竟这是北大的,总是不会单纯的考察某个方法好像,这个题就有好多细节要考虑的,比如说时间问题,比如说要开数组大小问题,还有,不能把所有的数都存进去,否则可能会RE,明天继续找bfs练练

勿忘初心 1156

ANSYS Fluent:湍流模型理论与应用

雷诺平均方程(RANS,Reynolds-Averaged Navier-Stokes equations)是湍流建模中最常用的方法。它通过将Navier-Stokes方程中的瞬时速度分解为平均速度和脉动速度,然后对这些方程进行时间平均,从而简化了湍流的计算。RANS方法的关键在于湍流闭合问题的解决,即如何准确地表示脉动速度的统计量。雷诺应力模型(RSM)是一种更高级的湍流模型,它通过求解六个雷诺应力方程来描述湍流的各向异性。RSM模型能够更准确地预测复杂的湍流流动,如旋转流和分离流,但计算成本较高。

kkchenjj的博客 2948

电磁场仿真软件:Sonnet_(1).Sonnet软件概述

根据特定需求自定义仿真流程,如多频率点仿真、多边界条件仿真等。

kkchenjj的博客 1452

POJ 3669 广度优先搜索

题意:巨大流星雨即将袭来。每个流星会对击中的地方以及周围(上下左右四格)造成破坏。Bessie开始时位于(0, 0)位置,并希望逃到一处不会被袭击到的地方(在第一象限内)。已知每移动一格需要1个时间单位,被流星破坏后的地方不能再进入。给出M个流星在T时刻击中的地方(X, Y),问Bessie能否逃到安全的地方,若能输出最短时间,否则输出-1。 分析:依旧是迷宫问题。不同的是,需要自己构...

dieseng6571的博客 281

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

广度优先搜索之例题poj3278

这种搜索方式占用内存较大,但能找到最优解。按照层次,走几步能走到的点就就在第几层。 poj3278 #include<iostream> #include<cstring> #include<queue> using namespace std; int N,K; const int maxn = 10000; int visited[maxn+10]; 判重标记,visited[i]=true 代表i已经扩展过 struct step{...

zjsru_Beginner的博客 310

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

POJ3278 Catch That Cow 广度优先搜索版

这题有很多实现的算法,我这里使用了广度优先搜索,以起点N为第0层,搜索到的K位于那一层,那最短距离就是那一层。当然了,也可以用动态规划来做,有空补上。以下是广度优先搜索的代码~/***************************************************

Neo Fung的专栏 736

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

BFS(广度优先搜索)-POJ3278-Catch That Cow(抓住那头牛)

BFS(广度优先搜索)-POJ3278-Catch That Cow(抓住那头牛) 题目链接:Catch That Cow BFS: 广度优先搜索(Breadth First Search, BFS)是对树的逐层遍历,通过距终点状态由远到近对所有可能的状态进行搜索并剪枝,一般用于求解达到某目标的最小步骤数。 思路:         有两点需要说明:          ...

[SZU_Crayon] 1212

Poj3278 广度优先搜索

[code="java"] import java.io.BufferedInputStream; import java.util.LinkedList; import java.util.Scanner; /** * @author NC * Poj3278 * 简单bfs */ public class Main { public static f...

nc200830740306的专栏 179

POJ 3278 Catch That Cow【广度优先搜索】

Catch That CowTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 111610 Accepted: 34874DescriptionFarmer John has been informed of the location of a fugitive cow and wants to catch her immediat...

Lloyd 310

POJ 3278-Catch That Cow 广度优先搜索BFS

<br />题目来源:http://acm.pku.edu.cn/JudgeOnline/problem?id=3278<br /> <br />解题报告:<br /> <br />广度优先搜索,对点X,它邻接的点有X-1, X+1, 2×X<br />这样从N开始对N邻接的点进行搜索,然后再以此广度搜索下去,直到搜索到K<br />得到的从N到K的最短路径就是 最短时间。<br />#include <iostream> #include <queue> using namespace std;

kindlucy的专栏 808

POJ-3278 Catch That Cow

POJ-3278 Catch That Cow 题目链接:POJ-3278 题目大意:农夫再n这个点上找在k点的牛 农夫可以步行 可以向前走一步或者向后走一步 可以传送 传送到2*当前节点的位置上 问农夫多少步可以找到牛 解题思路:BFS 以为贼简单的那种 然后就错了两次 第一次内存超限 肯定是queue爆掉了 然后我就把queue提升到方法外边了 还是超限 然后试了试1 100000这组数据 ...

鱼头的水题之路 444

赶上那头牛 POJ 3278

POJ 3278 农夫约翰已被告知一头逃犯的位置,并希望立即抓住她。他开始于一个点Ñ(0≤ Ñ在数轴上≤100,000)和母牛是在点ķ(0≤ ķ上相同数目的线≤100,000)。农夫约翰有两种运输方式:步行和传送。 *步行:FJ可以在一分钟内从任意点X移至点X -1或X + 1。 *传送:FJ可以在一分钟内从任意点X移至点2× X。 如果没有意识到它的追捕能力的母牛根本没有动弹,那么农夫约翰要花多...

weixin_43588422的博客 1093

poj 3278 Catch That Cow 广度优先搜索

D - Catch That Cow Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit Status Practice POJ 3278 Description Farmer John has been informed of the locat

Marcus-Bao的个人主页 635

POJ - 3278 Catch That Cow

使用queue进行bfs搜索

The Blog Of Uncle_Sugar 359

POJ - 3278 Catch That Cow 【广度优先搜索】

题目链接:http://poj.org/problem?id=3278 Time Limit: 2000MS   Memory Limit: 65536K Description Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. ...

MengHao的博客 171

poj 3278 catch that cow dfs Java

poj 3278 catch that cow 自己一开始用的是dfs,但是dfs需要把所有的情况都求出来,才能得到最快的。所以后来改成了bfs,后来突然想到题目要求的是最快的,相当于最短路径了,所以用了 bfs。 import java.util.ArrayDeque; import java.util.Scanner; class Step { int x; // 位置 int steps; // 到达位置 x 所需的步数 public Step(int x, int s

weixin_46621409的博客 344
上一篇: poj 水题
下一篇: poj 2488 深搜+回溯
三易的博客
博客等级 码龄15年 42粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值