POJ 3278 Catch That Cow —————— BFS

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

Language:Default
Catch That Cow
Time Limit: 2000MSMemory Limit: 65536K
Total Submissions: 120100Accepted: 37481

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

—-
/*
    2018/9/9

    BFS
    x 有三个搜索方向
    x+1;
    x-1;
    x*2;
    优先队列,找最短时间
*/

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<queue>
using namespace std;
const int MAXN=1e6+9;
int n,k;
bool vis[MAXN];
struct node{
    int x,step;
    node(){};
    node(int _x,int _step)
    {
        x=_x; step=_step;
    }
    bool operator < (const node &b)const
    {
        return step==b.step?x<b.x:step>b.step;
    }
};

int bfs(int x)
{
    memset(vis,0,sizeof(vis));
    vis[x]=1;
    node e1,e2;
    priority_queue<node> que;
    que.push(node(x,0));
    int ans=0;
    while(que.size())
    {
        e1=que.top();que.pop();
        if(e1.x==k)
        {
            ans=e1.step;
            break;
        }
        if(!vis[e1.x+1])
        {
            vis[e1.x+1]=1;
            que.push(node(e1.x+1,e1.step+1));
        }
        if(e1.x>0 && !vis[e1.x-1])
        {
            vis[e1.x-1]=1;
            que.push(node(e1.x-1,e1.step+1));
        }
        if(e1.x<=200000 && !vis[e1.x*2])
        {
            vis[2*e1.x]=1;
            que.push(node(e1.x*2,e1.step+1));
        }
    }
    return ans;
}

int main()
{
    while(~scanf("%d %d",&n,&k))
        printf("%d\n",bfs(n));
    return 0;
}




【实战指南】WinPE环境下360系统急救箱的病毒查杀全流程解析 本文详细解析了在WinPE环境下使用360系统急救箱进行病毒查杀的全流程。从制作WinPE启动盘到进入PE环境,再到360急救箱的深度使用和系统修复,提供了实用技巧和常见问题解决方案,帮助用户高效清除顽固病毒。 阅读详情

相关推荐

攻防世界 web高手进阶区 9分题 Web_python_flask_sql_injection

继续ctf的旅程,开始攻防世界web高手进阶区的9分题,本文是Web_python_flask_sql_injection的writeup

闵行小鱼塘 1473

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万+

AI安全攻防:十六进制编码与表情符号如何绕过ChatGPT安全限制

在人工智能安全领域,提示词工程是影响大语言模型行为的关键技术。其核心原理在于通过精心设计的输入文本,引导模型生成特定内容或执行特定任务。这项技术的价值在于能够深入探究模型的理解机制与决策边界,对于模型优化、安全测试及功能开发具有重要意义。在实际应用场景中,研究人员常利用编码转换、符号插入等方法构造输入,以测试模型安全护栏的鲁棒性。近期,一种结合十六进制编码与表情符号的组合攻击手法受到关注,该方法通过信息伪装与语义干扰,试图绕过模型内置的内容过滤机制,这凸显了当前AI安全在输入预处理与语义理解协同防御上面临的

weixin_30633405的博客 449

POJ.3278 Catch That Cow (BFS)

POJ.3278 Catch That Cow (BFS)题意分析求最少的操作次数,暴力就用BFS。 这题坑点挺多,一开始交上去无限RE,摸不着头脑,后来发现后数组越界了。因为存在-1的操作和*2的操作 ,不加判断就直接越界。 这告诉我们一个道理,光把数组开大点,是没有用的。代码总览#include <iostream> #include <cstdio> #include <algorithm

Pengwill's Blog 327

深度解析direct path write temp与ASM IO性能问题:Oracle 19.17视图查询优化指南

本文深度解析了Oracle 19.17版本中复杂视图查询出现`direct path write temp`与`ASM IO for non-blocking poll`性能瓶颈的根本原因。通过对比11.2.0.4版本的执行计划差异,文章提供了从CBO参数调整、存储层优化到SQL架构重构的完整实战调优指南,帮助DBA有效解决升级后的查询性能问题。

2y3u4i5o6p的博客 1100

Ubuntu系统全盘备份——TimeShift的安装与使用

所以如果有那天你不小心作了个大死,并且幸运到还能打开GNOME桌面和Timeshift(只要不是执行sudo rm -f /*这样的自杀程序)的时候,点击你要恢复的那个备份文件再点击Restore,经过短暂的重启后你的系统就成功恢复了。打开软件后,会有一些初始化设置,只需要一直点击 Next。根据自己电脑的内存大小决定是自动备份还是手动备份。当然,对于虚拟机用户来说,没有比在客户机直接拷贝虚拟磁盘文件更棒的方式了。点击左上角的 Create,就会执行备份操作。最下面的意思就是说不会自动备份需要手动操作。

琉璃轻纱的博客 4703

POJ.3278 Catch That Cow (BFS)

POJ.3278 Catch That Cow (BFS)题意分析给出给出初始坐标N,你可以执行的操作有N-1,N+1,N*2,求出最少需要几次操作,使得N=K。BFS时每次有3种操作,按照操作来即可。特别需要注意越界的问题,坐标不能小于0,也不能大于题目给的最大值100000.然后就没太大问题。一开始因为忘记数组越界的问题,RE了几次。代码总览#include <queue> #include <

Pengwill's Blog 273

26届数字IC秋招笔试面试全攻略-UVM验证方法学精要

本文介绍了数字IC验证中UVM方法学的核心内容,包括组件架构、Sequence机制和寄存器模型。UVM提供env、agent、driver等组件构建验证环境;Sequence机制通过item、sequence和sequencer实现激励生成与控制;寄存器模型则通过reg_block、reg等组件管理DUT寄存器。文章详细说明了各模块的功能、交互关系和代码实现,为IC验证工程师提供了完整的UVM应用指南,重点突出了验证环境的搭建方法、激励生成流程和寄存器抽象技术。这些内容是数字IC秋招笔试面试中的高频考点。

2301_79143213的博客 725

kuangbin 简单搜索 - POJ - 3278 Catch That Cow (简单bfs)

3.kuangbin 简单搜索 - POJ - 3278 Catch That Cow (简单bfs) 简单bfs #include<cstdio> #include<iostream> #include<cstring> #include<string> #include<cmath> #include<algorithm> #include<queue> #define IOS ios::sync_with_std

ACM-ICPC 现役(铜牌) Codeforces Rating: 2172 203

SQL进阶技巧:数据预处理如何对数据进行分桶【分箱】?

本文详细介绍了数据分析中常见的几种分桶方式:基于业务规则的分桶、等距分桶及等频分桶等,针对每种分桶方式给出了SQL实现

石榴姐yyds 4020

Serdes之什么是(CDR)?

光收发器和电收发器使用的是我们所说的串行数据通信。在这种通信方式中,数据位是按顺序一个接一个地传输的。光收发器和电收发器使用的是我们所说的串行数据通信。在这种通信方式中,数据位是按顺序一个接一个地传输的。目前市场上大多数收发器都没有专用的时钟输入,因此时钟恢复和数据重新定时等功能是在收发器外部(即在主板上)进行的。接收端则需要恢复时钟以采样串行线上的数据。为了实现这一点,接收端需要一个与输入数据频率大致相同的时钟。通过使参考时钟与输入数据信号的跳变相位对齐,可以生成一个恢复的时钟。这被称为时钟恢复。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 2390

POJ 3278 Catch That Cow --- 简单BFS

/* POJ 3278 Catch That Cow --- 简单BFS */ #include <cstdio> #include <queue> #include <cstring> using namespace std; const int maxn = 100005; bool visit[maxn]; int step...

weixin_30711917的博客 117

恒玄BES调试笔记-BES2500如何Dump Anc Audio数据

从YP的4M flash改HP3的2M flash只需要改: 原工程:target.mk的export FLASH_SIZE ?= 0x200000和common.mk里的KBUILD_CPPFLAGS += -DNEW_IMAGE_FLASH_OFFSET=0x100000 OTA工程:target.mk的NEW_IMAGE_FLASH_OFFSET ?= 0x100000和FLASH_SIZE ?= 0x200000 ...

leezs的博客 1672

POJ 3278 Catch That Cow(BFS)

题目网址:http://poj.org/problem?id=3278 题目: Catch That Cow Time Limit:2000MS Memory Limit:65536K Total Submissions:92360 Accepted:28999 Description Farmer John has ...

weixin_30483697的博客 69

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

[POJ 3278]Catch That Cow[BFS]

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

闲停 610

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

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

[SZU_Crayon] 1211

[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的博客 109

【POJ 3278 --- Catch That Cow】队列 || bfs

【POJ 3278 --- Catch That Cow】队列 || bfs 题目来源:点击进入【POJ 3278 — Catch That Cow】 Description Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at...

来日浅谈的博客 575

POJ3278 Catch That Cow —— BFS

题目链接:http://poj.org/problem?id=3278 Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 97563   Accepted: 30638 Description Farmer John

A man can be destroyed, but not defeated. 448

poj 3278 Catch That Cow BFS

http://acm.pku.edu.cn/JudgeOnline/problem?id=3278poj 3278 Catch That Cow Time Limit:2000MS  Memory Limit:65536KTotal Submit:2315 Accepted:530 DescriptionFarmer John has been informed of the loca

Michael.Shi—History is to be made from now 1542

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】

题目链接 http://poj.org/problem?id=3278 题意 给出两个数字 N K 每次 都可以用三个操作 + 1 - 1 * 2 求 最少的操作次数 使得 N 变成 K 思路 BFS 但是要注意 设置 数组的范围 小心 RE AC代码 #include <cstdio> #include &...

banshen0201的博客 124

poj 3278 Catch That Cow 【bfs】

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

shengweisong 826

POJ3278 Catch That Cow BFS

题源:http://poj.org/problem?id=3278 题意:一个坐标轴的正半轴,有起点和终点。从起点开始,每次可以选择向左或向右移动一格,或者坐标乘以二,每次移动耗时为1,问最快多久到终点。 思路:BFS,注意不越界。 下面是AC代码。 #include<iostream> #include<cstdio> #include<cstring> #i...

枚举星星 263

POJ 3278 Catch That Cow【bfs】

POJ 3278 Catch That Cow【bfs】 Catch That Cow

zxc13936130136的博客 492

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

POJ3278Catch That Cow BFS

Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 130721 Accepted: 40608 Description Farmer John has been informed of the location of a fugitive cow and wants to catch her im...

DouglasConnor的博客 363
上一篇: POJ 2251 Dungeon Master ——————BFS
下一篇: POJ 1426 Find The Multiple ——————DFS
陶鸿杰
博客等级 码龄9年 93粉丝 298原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值