【POJ】poj 3278(BFS)

【现代控制理论期末考点】 现代控制理论期末考点,适用于 SEU Automation 阅读详情

 

Description

Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.

* Walking: FJ can move from any point X to the points X - 1 or X + 1 in a single minute
* Teleporting: FJ can move from any point X to the point 2 × X in a single minute.

If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?

Input

Line 1: Two space-separated integers: N and K

Output

Line 1: The least amount of time, in minutes, it takes for Farmer John to catch the fugitive cow.

Sample Input

5 17

Sample Output

4

Hint

The fastest way for Farmer John to reach the fugitive cow is to move along the following path: 5-10-9-18-17, which takes 4 minutes.

 

       这个题目是一个宽度优先搜索,使用队列来进行宽度优先搜索把搜索到的元素储存到队列中按照一层一层的顺序来进行搜索,因为每一次都是计算走n步可以走到哪些地方,所以最先走到目的地的就是最短的走法,用一个isvisit数组来记录i这个地方是否搜索过,因为是一层一层的搜索,所以先搜索到i的步数肯定最少,所以可以不用把i加入到队列中继续搜索,这样就节约了时间,在最后进行找到最短路径的时候队列里面可能还有元素,所以在输出答案之后还要将队列清空,代码如下:

 

 

 

#define MAX_C 100005
#include <iostream>
#include<algorithm>
#include<cstdio>
#include<queue>
#include<cstring>
using namespace std;
queue<int> where;
int times[MAX_C];
int isvisit[MAX_C];
int counts;
int flag;
int c;
int person,cow;
int dfs( int po,int co )
{
    if ( po == co ) return 0;
    where.push(po);
    while ( !where.empty())
    {
        int number = where.front();
        where.pop();/**把把首元素取出来之后要将其取出来,防止陷入死循环*/
        if ( number - 1 >= 0 && !isvisit [number - 1])/**搜索在这个点下一步可能会出现的状态*/
        {
            where.push( number - 1);
            isvisit[number - 1] = 1;
            times[number - 1] = times[number]+1;
        }
        if ( number - 1 == co ) break;
        if ( number + 1<MAX_C && !isvisit[number+1])
        {
            where.push( number + 1);
            isvisit[number+1] = 1;
            times[number+1] = times[number]+1;
        }
        if ( number + 1 == co ) break;
        if ( number*2 < MAX_C&&!isvisit[number*2])
        {
            where.push(number * 2);
            isvisit[number*2] = 1;
            times[number*2] = times[number]+1;
        }
        if ( number * 2 == co ) break;
    }
    return times[co];
}
int main()
{

    while ( cin >> person >> cow )
    {
        memset(isvisit,0,sizeof(isvisit));
        memset(times,0,sizeof(times));
        cout << dfs(person,cow) << endl;
        while(where.size())
        where.pop();
    }
}

 

 

 

 

 

 

 

 

 

YOLOv8交通监控全方案:精准车辆计数+违章(闯红灯/压线)识别,拿来就落地! 作为深耕计算机视觉落地的开发者,我见过太多交通监控的“伪智能”——传统系统要么车辆计数不准(漏计/重复计数),要么违章识别滞后(靠人工回看录像),甚至连“闯红灯、压线”这类常见违章都无法实时判定,完全满足不了实际交通管理需求。 阅读详情

相关推荐

避开这些坑!用Python ReportLab生成PDF时字体处理与中文排版的5个关键技巧

本文针对Python ReportLab库在PDF自动化生成中常见的中文排版难题,提供了五个关键技巧。内容涵盖字体注册的稳健策略、段落样式的精细控制、表格内中文的换行对齐、页面布局管理以及性能优化,旨在帮助开发者彻底解决中文乱码、排版错位等问题,生成专业美观的PDF文档。

weixin_29250403的博客 623

poj3278 CatchThatCow bfs

poj3278 BFS 里面还是有一个莫名其妙的坑还是不知道为什么 为什么一定要是100001而不可以是2*k呢 #pragma warning(disable:4996) #include<iostream> #include<string> #include<cmath> #include<ctype.h> #include<memory...

duanyuchen的博客 188

【图神经网络】从0到1使用PyG手把手创建异构图

异构图的准确定义如下:异构图(Heterogeneous Graphs):一个异构图GGG有一组节点V=v1,v2,...,vnV=v_1,v_2,...,v_nV=v1​,v2​,...,vn​和一组边E=e1,e2,...,emE=e_1,e_2,...,e_mE=e1​,e2​,...,em​组成,其中每个节点和每条边都对应着一种类型,用TvT_vTv​表示节点类型的集合,TeT_eTe​表示边类型的集合,一个异构图有两个映射函数,分别将每个节点映射到其对应的类型ϕv:V→Tv\phi_v:V\rig

小哲的博客 7833

poj 3278 BFS

poj3278 都说水题,都说是自己第一道BFS题,哈哈。通过这题,又对BFS的基本框架有了进一步的认识。 分三个方向来BFS,主要时还是判断边界问题。 #include <iostream>#include <fstream>#include <cstdio>#include <queue>#include <memory...

weixin_30815469的博客 161

告别IIS折腾!用.NET8+Kestrel在Windows上5分钟搞定Web API部署

本文介绍了如何使用.NET8和Kestrel在Windows上快速部署Web API,告别繁琐的IIS配置。通过5分钟实战教程,开发者可以轻松实现高性能、跨平台的API服务部署,显著提升开发效率和系统性能。

weixin_42528780的博客 243

硬件即代码:用软件工程思维拆解F450无人机装配的模块化设计哲学

本文探讨了如何用软件工程思维重构DJI-F450无人机的模块化设计,将硬件装配提升为可编程系统。通过硬件抽象层、控制系统分层架构和扩展槽位设计模式,展示了无人机装配的模块化哲学,并结合实际案例说明如何优化性能与安全性。

weixin_29294975的博客 386

POJ_3278_(BFS)

POJ 3278 总是想着用dfs做,不知道为什么 标记已经进入队列的点, 遇到k就存ans = step 输出 用dfs做的时候,根本没有办法控制dfs的范围,这里bfs刚好解决了x-1 x+1 2*x谁先到k的问题 体现了广度优先的思想 #include <iostream> #include <string.h> #include <queue> u...

_llc的博客 269

多尺度Transformer+特征融合新范式,算力减半精度猛增

在大模型时代,多尺度特征融合与Transformer架构的结合正成为研究热点。多尺度特征融合能够捕捉数据在不同尺度上的关键信息,而Transformer架构凭借其强大的并行处理能力和对长距离依赖的建模能力,为复杂数据处理提供了新的思路。这种结合在处理多模态数据时展现出巨大潜力。

Tulingxueshu的博客 1057

POJ3278 抓奶牛 BFS

嗯弱弱的开始了BFS的旅程,不知从哪里找到了那个做题顺序。于是就按着那个来了。 题目描述: 嗯这个题目是给你两个数,一个是农夫的坐标n,一个是奶牛的坐标k,坐标轴大小在0到100000之间,然后农夫有三种行进的方法,分别是n+1 , n-1 , 2*n,然后我们就要求的是农夫追上奶牛所用的最短的步数嗯。 算法思想: 来,都告诉你是BFS了,那就来实现吧。

Oh233的专栏 670

什么是深度展开网络?如何将迭代算法的每一次迭代展开成深度网络对应的一层?深度展开网络进行端对端训练,其中端对端是什么意思?

在深度学习和机器学习的背景下,“端到端”(End-to-end)训练指的是将输入数据直接映射到最终输出的过程,而不需要任何中间的手动数据预处理或特征工程。- **自然语言处理**:端到端自然语言处理系统可以将自然语言输入直接转化为计算机可理解的语言输出,而不需要对语言进行分解和转化。- **推荐系统**:通过使用深度神经网络,端到端推荐系统可以直接根据用户历史行为预测其未来的兴趣爱好,并推荐相应的产品或服务。4. **直接映射**:从输入到输出的直接映射,中间没有任何拆分或分解的过程。

m0_67897882的博客 5425

基于STM32+OneNet设计的物联网智慧路灯(100)

本次设计的智能路灯采用STM32芯片和OneNet物联网平台进行连接,开发出支持太阳能充电锂电池供电、GPS定位上传位置信息、手动/自动控制路灯开关、环境光照调节、红外传感器检测周围人员、空气质量监测等多项功能。同时,当路灯发生异常情况时,系统可以自动发送邮件或短信到指定邮箱或电话。

7724

POJ3278 使用BFS解决问题

Poj 3278: 简化题意: 给定两个整数n和k 可以通过三种操作: n+1;n-1 或n*2 ,使得n==k 输出最少的操作次数   解题思路: 分两种情况: 当n >= k  直接后退寻找到K 当n 代码稍后附上:

kuangminan的专栏 439

硬方案——几种实用的恒流源电路设计方案,敬请收藏(运放、三极管在手,让你玩出多种花样)

0 引言 我们在信号测量、供电等应用场景时常会涉及到使用恒流源,以前觉得恒流源挺神奇的,研究了下实现方案,其实也没有多么高深(这里讨论的仅限于用在信号测量中的小电流恒流源设计),这里给出几个实用的恒流源电路设计方案。 1 恒流源电路设计 (1)使用三极管搭建的恒流源 (2)使用运放搭建的恒流源 (3)使用恒流二极管搭建的恒流源 pt100恒流源测温电路图_电子技术_电工之家 ...

数字世界 万物互联 9524

[POJ3278]Catch That Cow【BFS】

[POJ3278]Catch That Cow 这题就是一道简单的BFS,每分钟有三种情况。 1. x + 1 2. x - 1 3. x * 2 这题就解完了。。。 另外注意,如果越界,也就是x不在0−105之间那么就不走。 代码如下: #include<cstdio> #define MAXN 100000 u...

aiweiluan5095的博客 108

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

android 蓝牙通讯demo

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

poj3278 bfs

poj3278 bfs 这道题是很经典的bfs题 比较简单 开始想的时候 思路并没有很清晰 就开始敲代码 导致后面速度放慢 出错调试也慢 没有很快做出来 看来bfs还是不是很熟练 #include #include #include #include const int INF = 0x3f3f3f3f; using namespace std; int maxn=100

liyanfeng1996的博客 296

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

[POJ 3278]Catch That Cow[BFS]

题目链接:[POJ 3278]Catch That Cow[BFS] 题意分析: 农夫每次可以向左或者向右走,或者跳跃到当前位置的两倍位置上。问:最少几次操作可以到达奶牛的K位置 解题思路: 从起点BFS即可。注意边界条件和访问标记量。 个人感受: 虽然简单,还是ME+WA。ME是因为忘记标记访问量,WA是因为边界上的2*X 具体代码如下: #include #include #i

闲停 610

POJ 3278 Catch That Cow(BFS)

POJ 3278 Catch That Cow(BFS) Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a pointN(0 ≤N≤ 100,000) on ...

WBA 335

POJ 3278 Catch That Cow(BFS)

题目链接:https://cn.vjudge.net/problem/POJ-3278 题意:给你 n 和 k ,可以对 n 进行 n+1、n-1和n*2的操作,问至少经过几次操作数字 n 能够到达 k 。 思路:从n开始BFS,每次将三种操作加入队列搜索,最先搜索到的肯定是操作最少的,由此对已经搜索过的点进行标记剪枝。 AC代码: 1 #include<cstdio&...

weixin_30919429的博客 100

POJ3278 Catch That Cow(BFS)

题目链接:http://poj.org/problem?id=3278 题意:   在一个数轴上(0 ~ 100000),给你农夫J的位置N,和牛cow的位置K,农夫有三种移动的方式:左移一步(X - 1,X为当前位置);右移一步(X + 1);右移2*X步(2 * X);问农夫最少移动多少步可以追赶到牛,牛是原地不动的. 思路:   既然问的是最少移动多少步,最容易想到的就是暴...

dimaishu7553的博客 133

POJ 3278.Catch That Cow(bfs)(c++)

POJ 3278.Catch That Cow(bfs)(c++) 题目链接:Catch That Cow 题目大意: 给定两个整数n和k。通过 n+1或n-1 或n*2 这3种操作,使得n==k。输出最少的操作次数。 样例: 输入:5 17 输出:4 解释:5-10-9-18-17 解题思路: 可以看成搜索问题,或者bfs典型的迷宫问题,定义一个队列。把起点入队,然后队首出队作为当前位置,把当前位置所能一步到达的位置入队,依次下去,直到,出队的那个当前位置是终点,返回步数。 代码如下: #include

谦卑 378

【BFS】POJ 3278

POJ 3278 Catch That Cow 题目:你要去抓一头牛,给出你所在的坐标和牛所在的坐标,移动方式有两种:要么前一步或者后一步,要么移动到现在所在坐标的两倍,两种方式都要花费一分钟,问你最小花费时间恰好到达牛所在的地方。 思路:BFS求最优解,移动有三种情况,前后,和移动两倍位置,不过注意的地方是,当牛的坐标比你小,你只能一步步往后倒退,这个需要特判。#include<cstdio>

一将功成万骨枯 590

POJ 3278 Catch That Cow(BFS 剪枝)

题目链接:http://poj.org/problem?id=3278 这几次都是每天的第一道题都挺顺利,然后第二道题一卡一天。 = =,今天的这道题7点40就出来了,不知道第二道题在下午7点能不能出来。0 0 先说说这道题目,大意是有个农夫要抓牛,已知牛的坐标,和农夫位置。并且农夫有三种移动方式,X + 1,X - 1,X * 2。问最少几步抓到牛。 開始觉得非常easy...

aoe41606的博客 109

剪枝的应用-BFS剪枝-poj3278-可行性剪枝

DescriptionFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has

omenkk7的博客 739

POJ3278-Catch That Cow(bfs)

poj 3278,原题链接:http://poj.org/problem?id=3278。 Description Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,

Yorozuya 308
上一篇: 【POJ】poj 3009 (DFS)
下一篇: 【POJ】poj 2488(DFS)
三生石1103
博客等级 码龄12年 16粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值