POJ3278 Catch That Cow BFS入门

POJ 3278 Catch That Cow【C语言版】 我的第一道BFS题,还是按照习惯在网上搜索题解,令人郁闷的是大部分都是C++版的,用了queue库。而且可能因为这道题太水,好不容易找到的C语言版的解题报告中的注释又对新手不太友好,不是特别详细,有的讲的很齐全但是代码太难看了我拒绝看 = =。。。知道我遇到了这个人的博客,当然注释也不是很齐全,但是胜在代码啰嗦(划掉),马上就看懂了。所以我决定在他的解题报告代码的帮助下来开始我人生中第一道BFS题 阅读详情

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.

Source

USACO 2007 Open Silver


为求解最短路径,用BFS效果更好。


#include <iostream>
#include <cstdio>
#include <map>
#include <set>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
#define INF 0x3f3f3f3f
const int maxn=100000;
typedef long long LL;
int n,k;
bool v[maxn+5];
struct step{
    int x;
    int steps;
    step(int xx,int s):x(xx),steps(s){}
};
queue<step> q;
int main()
{
    while(~scanf("%d%d",&n,&k)){
        memset(v,false,sizeof(v));
        q.push(step(n,0));
        v[n]=true;
        while(!q.empty()){
            step s=q.front();
            if(s.x==k){
                printf("%d\n",s.steps);
                return 0;
            }
            if(s.x-1>=0&&!v[s.x-1]){
                q.push(step(s.x-1,s.steps+1));
                v[s.x-1]=true;
            }
            if(s.x+1<=maxn&&!v[s.x+1]){
                q.push(step(s.x+1,s.steps+1));
                v[s.x+1]=true;
            }
            if(2*s.x<=maxn&&!v[2*s.x]){
                q.push(step(2*s.x,s.steps+1));
                v[2*s.x]=true;
            }
            q.pop();
        }
    }
    return 0;
}



POJ 3278 Catch That Cow(BFS 剪枝) 题目链接:http://poj.org/problem?id=3278 这几次都是每天的第一道题都挺顺利,然后第二道题一卡一天。 = =,今天的这道题7点40就出来了,不知道第二道题在下午7点能不能出来。0 0 先说说这道题目,大意是有个农夫要抓牛,已知牛的坐标,和农夫位置。而且农夫有三种移动方式,X + 1,X - 1,X * 2,问最少几步抓到牛。 开始认为很简单的,三方向的BFS就能顺 阅读详情

相关推荐

合泰单片机HT32之keil5开发环境搭建(一)

1. 前言 这两天在准备合泰杯,但是总是感觉无从下手,因为合泰单片机的资料教程什么的非常少,不像stm32那样。而且听说要用合泰单片机的专用IDE,感觉当场被劝退了。后来经过查找资料,发现合泰单片机也有keil5的支持包,也就是说可以从库函数进行开发,不用从寄存器进行开发,但我找了好久,并没有找到教程,后来实在没办法,打算自己动手搭建环境,经过了大概两天的挣扎后,终于成功地搭建好了环境,也成功地点...

weixin_44713763的博客 8669

POJ - 3348 Cows 凸包求面积

题目链接:https://cn.vjudge.net/problem/POJ-3348 题意:给出n个点,求所形成的区域能放多少cow,一个cow占50 题解:先求下凸包上的点,在叉积求下面积即可 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #in...

还我笑颜 223

数字IC后端面试题目汇总含解析,ICer上岸必备!

今天IC修真院为大家带来了数字IC后端的面试题目,希望大家能够用得上。

coachip的博客 2447

POJ 3278 Catch That Cow 【bfs入门】

Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 120633   Accepted: 37641 Description Farmer John has been informed of the location of a fugitive cow and w...

Emiya丶的博客 175

保姆级教程:用Code Blocks搞定中科蓝讯AB5768E蓝牙音响SDK开发环境(附资源包)

本文提供了一份详细的Code Blocks配置指南,帮助开发者快速搭建中科蓝讯AB5768E蓝牙音响SDK开发环境。从工具链安装、环境配置到工程导入和调试技巧,涵盖全流程避坑要点,特别适合K12开发板初学者。附资源包下载,助您高效完成蓝牙音响开发。

weixin_28692817的博客 448

在MATLAB和Simulink中设计并仿真一个电动汽车整车动力学模型与控制系统

电动汽车(EV, Electric Vehicle)的动力学建模与控制仿真在车辆开发过程中起着至关重要的作用。通过Simulink进行整车动力学模型的构建和控制策略的验证,可以有效评估车辆性能、优化系统设计并降低开发成本。以下是如何在MATLAB和Simulink中设计并仿真一个电动汽车整车动力学模型与控制系统的详细步骤。通过上述步骤,我们成功设计并实现了基于Simulink的电动汽车整车动力学模型与控制仿真。该系统能够模拟复杂的整车动力学行为,验证控制策略的有效性,并通过优化设计提高车辆的性能和可靠性。

xiaoheshang_123的博客 549

Catch That Cow POJ - 3278 经典BFS入门题

/* 题意:将每个数拓展成三个数分别为n-1,n+1,n*2。然后继续将拓展出来的数继续拓展,直到有个数等于k,输出最小的操作数 正好符合BFS特点,对每一层的几个数都进行相应的拓展 用d数组记录某个点已经被生成或者未被生成 用step纪录到达此数的操作数 最先到达某个点 可以直接把这个数step数组占有权和d数组占有权 正好符合该题最小操作数 */ #include<iostream> #include<cstring> #include<queue> using

梏十一郎的博客 216

Tesla v100 4张显卡组装机安装vllm和ollama在Ubuntu系统上的安装---AI大模型系统从零开始0032

本文提供Ubuntu22.04系统下vLLM的完整安装指南,适配4×32G Tesla显卡的单机4卡张量并行部署。教程包含:1)硬件要求(Ubuntu22.04、NVIDIA驱动≥535、CUDA12.1+);2)NVIDIA驱动自动安装方法;3)Python3.10虚拟环境配置;4)vLLM官方预编译包一键安装;5)单机4卡启动Qwen3.6-27B模型的完整参数说明(含FP8量化、多进程并行等关键配置)。文末附分布式部署的Ray集群方案参考链接,适用于多机8卡场景。

添柴程序猿的专栏 177

Catch That Cow POJ - 3278 BFS+队列(入门)

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,0...

weixin_43620849的博客 1011

YOLO26 旋转框检测 OBB 技术:角度预测与解码优化

YOLO26旋转框检测技术通过CSL角度编码有效解决了OBB检测中的周期性问题。该技术采用5参数表示法(cx,cy,w,h,θ),在检测头中分别处理分类、回归和角度预测。核心创新点包括:1)使用高斯或三角窗口的CSL编码对角度进行平滑表示;2)通过加权平均解码角度,避免边界不连续问题。该方法在遥感、文本检测等需要精确方向信息的场景中表现优异,相比传统HBB框可提升定位精度30%以上,同时保持了YOLO系列的高效特性。

一键难忘的博客 522

VxWorks系列 快速导航

Vxworks系列快速阅览导航

Mr.Sugarcane 1308

poj3278 Catch That Cow 一维广搜 bfs入门

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

bestsort 304

一张图讲透银行个人外汇业务逻辑和实操

个人外汇业务主要分为结售汇和外币兑换两类,前者满足日常跨境需求,后者因投机属性多数银行已暂停。业务核心是利用汇率波动实现货币兑换,满足支付或投资需求。交易涉及客户分类、主流币种、多种渠道和汇率计算规则,需区分直接/间接标价法判断汇率走势。银行通过"货币兑换"科目核算损益,采用期末折算确认盈亏。监管要求包括5万美元年度额度、合法渠道、真实性原则及大额申报等。随着跨境金融数字化发展,掌握基础逻辑和合规要求是安全参与外汇业务的关键。

银行信息系统应用架构详解 288

【算法】【题解】- POJ - 3278 Catch That Cow(BFS入门例题)

BFS入门例题 Catch That Cow 题目描述: 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 i...

Kapo1的博客 1424

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

POJ3278 Catch That Cow(BFS入门)

Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 43276   Accepted: 13472 Description Farmer John has been informed of the location of a fugit

男人就应该默默地努力--某一男人 826

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【Java】POJ3278 Catch That Cow(BFS入门)

题目 农夫知道一头牛的位置,想要抓住它。农夫和牛都于数轴上 ,农夫起始位于点 N(0<=N<=100000) ,牛位于点 K(0<=K<=100000) 。农夫有两种移动方式: 1、从 X移动到 X-1或X+1 ,每次移动花费一分钟 2、从 X移动到 2*X ,每次移动花费一分钟 假设牛没有意识到农夫的行动,站在原地不。最少要花多少时间才能抓住牛? Input 一行: 以空格分隔的两个字母: N 和 K Output 一行: 农夫抓住牛需要的最少时间,单位分钟 Sample Inpu

天亮就睡 315

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 point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,00

henuzxy 542

Catch That Cow POJ - 3278 BFS入门

Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 94224   Accepted: 29551 Description Farmer John has been informed of the location of a fugitiv

米兰的小科比 227

POJ 3278 Catch That Cow - BFS入门

题目地址 分析:   BFS入门。搜索的门,我大概是被卡住了吧 人抓牛,可以从任意点X移动到X-1 / X + 1 / X * 2点,耗时均为1分钟。问人抓到牛的最短时间。 看了好些个博客,https://blog.youkuaiyun.com/weiwanshu/article/details/45770537这个的讲解很容易懂,但是是c语言版,c++可以直接用到queue模板库的队列...

weixin_30487201的博客 103

POJ-3278 Catch That Cow (BFS入门题

Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 93780 Accepted: 29419 Description Farmer John has been informed of t

目标就是咸鱼!! 292

poj 3278 Catch That Cow(bfs入门级别,经典模板)

C - Catch That Cow POJ - 3278 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 t

STOP 346

POJ 3278 Catch That Cow 【bfs+队列】

原题链接:http://poj.org/problem?id=3278 算法:bfs+队列+STL(C++) PS:bfs入门题目,好高兴啊,终于会用bfs了。 Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 32679   Accepted:

free斩 1万+

POJ 3278 Catch That Cow

POJ 3278 Catch That Cow 题目大意: 在一个一维的坐标下,FJ和Cow各自处于一个坐标点,Cow不动,然后问FJ追上Cow的最少时间 FJ可向前走一步,耗时一分钟 FJ可向后走一步,耗时一分钟 FJ可走到当前坐标的两倍处,耗时一分钟(坐标均为正数) 具体思路: 分两种情况,若FJ在Cow的前方,那么他只能一步一步往后走,耗时N-K 若FJ在Cow后方,则BFS搜索 #in...

指弹键盘哼民谣 613

POJ-3278 Catch That Cow

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

鱼头的水题之路 443

POJ3278---Catch That Cow

POJ3278—Catch That Cow 题目描述 农夫约翰已被告知逃亡牛的位置,并希望立即抓住她。他开始于一个点N(0≤ N≤100,000)和牛是在点K (0≤ K≤100,000),他们在同一条线上。农夫约翰有两种交通方式:步行和乘车。 行走:约翰可以在一分钟内从任意点X移动到X -1或X + 1 点 乘车:约翰可以在一分钟内从任意点X移动到点2× X . 如果母牛不知道它的追赶,根本不动,那么农夫约翰需要多长时间才能找回它? 输入 第1行:两个以空格分隔的整数:N和K 输出 第1行:农夫约翰用最

LXYDSF的博客 1613
上一篇: UESTC1133 菲波拉契数制 01背包思想
下一篇: OpenJudge 迷宫问题 BFS
Megumin
博客等级 码龄10年 3粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值