POJ3278 Catch That Cow

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

题目大意:在一个数轴上,求出由n到k的最小步数,其中n可以+1或者-1或者*2。

思路:明显的bfs,因为是求最小的步数,总共有三种走法,这也是BFS的三个入口(或者说bfs应该b的方向),对于每一种走法走到的位置就是bfs抽象的层数上的棋子(想象由一个源点散发开来)而每一种走法相同的时间(从出发到当前)就是扩展出来的层数。

 

AC program:(G++提交WA了,但是换了C++竟然AC了,囧。。)


 

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue>
using namespace std;
#define maxn 100100
int n,k; 
int visited[maxn];
struct point 
{
  int x;
  int dp;       
}ans,tmp;
int  bfs()
{
  queue<point> que;
  memset(visited,0,sizeof(visited));
  ans.x=n;
  ans.dp=0;
  que.push(ans);
  visited[n]=1;
  while(!que.empty())
  {
    ans=que.front();
    //虽然ans会被覆盖,但是队列里面的重要的是属性而不是名字 
    //bfs有一个编码好处就是不要考虑回溯~~
    que.pop();
    if(ans.x==k)
      {
        return ans.dp;          
      }
    tmp.dp=ans.dp+1;
    tmp.x=ans.x+1;
    if(tmp.x>=0 && tmp.x<=100000 && !visited[tmp.x])
      {
         visited[tmp.x]=1;
         que.push(tmp);        
      }
    tmp.x=ans.x-1;
    if(tmp.x>=0 && tmp.x<=100000 && !visited[tmp.x])///
      {
         visited[tmp.x]=1;
         que.push(tmp);        
      }
    tmp.x=ans.x*2;
    if(tmp.x>=0 && tmp.x<=100000 && !visited[tmp.x])///
      {
         visited[tmp.x]=1;
         que.push(tmp);        
      }
                       
  }
       
} 
int main()
{

cin>>n>>k;
cout<<bfs()<<endl;
//system("pause"); 
return 0;} 
 


 

 

Windows 11 IoT企业版LTSC 24H2/25H2中文版安装指南(含OEM激活教程) 本文详细介绍了Windows 11 IoT企业版LTSC 24H2/25H2中文版的安装与OEM激活全流程。从系统镜像准备、硬件兼容性检查到自动化安装配置,再到OEM激活方案(包括SLIC注入和数字许可证激活),为工业自动化、数字标牌等物联网设备提供稳定可靠的系统部署指南。 阅读详情

相关推荐

基于YOLO+DeepSeek的农作物病虫害检测系统

本系统是一个基于YOLO+DeepSeek的农作物病虫害检测系统。 可使用YOLOV1-YOLOV12的任意模型进行目标检测。可以实现检测图片、批量检测图片、视频检测、摄像头检测四种方式。

qq_51977316的博客 1809

【poj 3278】Catch That Cow 题意&题解&代码(C++)

poj bfs

曾经追梦的happy时光 727

Orcad 17.2导出PDF原理图终极指南:从Ghostscript安装到带属性书签配置

本文是Orcad 17.2导出高质量PDF原理图的终极指南。针对导出过程中常见的Ghostscript安装报错、软件卡死及版本兼容性问题,提供了详细的解决方案。重点推荐使用Ghostscript 9.53.3版本以确保最佳兼容性,并深入讲解了从安装配置、内存优化到高级书签属性设置的完整流程,帮助硬件工程师稳定、高效地生成带完整器件属性和导航书签的PDF文档。

weixin_29281915的博客 393

Poj 3278 Catch That Cow

Language: Default Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 65602   Accepted: 20610 Description Farmer John has been informed of the

曾经沧海难为水,除却巫山不是云 372

CentOS7下通过YUM源高效部署Zabbix7 Agent指南

本文详细指导在已结束生命周期的CentOS7系统上,通过更换YUM源(如阿里云镜像)并添加Zabbix官方仓库,高效部署Zabbix7 Agent。文章涵盖从源配置、软件安装、关键参数修改到服务启动与防火墙设置的全流程,帮助用户解决依赖错误,快速建立服务器监控。

weixin_29230059的博客 267

【Seurat绘图进阶】从参数调优到美学定制:解锁DimPlot与FeaturePlot的隐藏技巧

本文深入探讨了Seurat包中DimPlot与FeaturePlot的进阶使用技巧,旨在解决单细胞数据可视化中的常见痛点。通过参数调优(如order、shuffle、raster)、颜色美学定制(使用RColorBrewer、viridis配色)以及性能优化(栅格化处理),并结合scCustomize包与patchwork排版,帮助用户将基础图表提升为信息清晰、可直接用于论文发表的出版级可视化结果。

lake5的博客 628

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

Claude Code 处理长任务 + Cursor 专注交互:双栈协作的 3 种分工场景与响应提速 35% 实测

揭示 Claude Code 与 Cursor 在 AI 编程中的本质分工:Claude Code 作为离线式架构师处理跨文件、带约束的长链路重构(如单体拆微服务),Cursor 作为现场交互工程师专注秒级局部编辑;提出按任务切片动态切换的三种工程化协作场景,并给出结构化上下文构建、约束型 Prom

weixin_28728443的博客 122

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

点云配准3:3d-ndt算法在pcl上的实现以及参数设置

3d-ndt算法在pcl上的使用方法以及参数设置

诺有缸的高飞鸟的博客 7891

黑猫带你学eMMC协议第17篇:超详细的eMMC HS200 & HS400讲解

1 前言 1.1 声明 本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。 本文结合eMMC JEDEC5.1协议手册查看效果更佳。 1.2 内容提要 本文大约6000字,主要内容有: 1.什么是emmc hs200/hs400? 2.什么是tuning?tuning的过程又是什么? 3.如何设置才能让emmc进入hs200 mode? 4.如何设置才能让emmc进入hs400 mode? 5.emmc关于HS200/HS400内部结构框图对比。 6.部分个人相关经验总结。

黑猫奥利奥的博客 1万+

POJ-3278 Catch That Cow

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

鱼头的水题之路 443

【深度学习驱动流体力学】OpenFOAM目录流体力学求解器汇总介绍

下面这些目录结构和其中的求解器和工具展示了OpenFOAM作为一个功能强大且广泛应用的开源CFD软件框架的多样性和灵活性。每个求解器都专门用于解决不同类型的流体动力学问题,从基础的流动模拟到复杂的多相流动和燃烧模拟等各种应用场景。

源代码杀手的博客 1184

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

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

poj 3278 catch that cow

约翰希望立即抓住逃亡的牛。当前约翰在节点 N,牛在节点 K(0≤N,K≤100 000)时,他们在同一条线上。约翰有两种交通方式:步行和乘车。如果牛不知道有人在追赶自己,原地不动,那么约翰需要多长时间才能抓住牛?1.步行:约翰可以在一分钟内从任意节点 X 移动到节点 X-1 或 X+1。2.乘车:约翰可以在一分钟内从任意节点 X 移动到节点 2×X。输入:两个整数 N 和 K。输出:单行输出约翰抓住牛所需的最短时间(以分钟为单位)。输入样例5 17输出样例4。

qq_74248245的博客 644

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

[POJ 3278] Catch That Cow

[POJ 3278] Catch That Cow 题目链接:http://poj.org/problem?id=3278 题目理解: 从当前点N,到点K,可以选择的方式有三种,分别是:当前位置+1,当前位置-1,当前位置×2; 求走的最少步数。 1 #include&lt;iostream&gt; 2 #include&lt;c...

Youpeng 149

POJ T3278 Catch That Cow

                              POJ T3278 Catch That Cow  题解:     水题,Bfs裸题,变成一维更简单,走的方向只要判断下为2时是乘操作就行了......   代码: #include&lt;cstdio&gt; #include&lt;iostream&gt; #include&lt;cstring&gt; #include&...

Mr__Charles的博客 224

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

Catch That Cow POJ - 3278

Catch That Cow POJ - 3278 题目大意: 给出小于等于100000的两个数字 a,b 从a到b最少需要几次 每次可以+1,-1,*2 输出结果 分析: 简单BFS 将a放入队列中,如果队列不空,就取出队头,分析三种情况,如果没被访问过就将新的a放入队列,直到取出的队头等于b,返回查找的次数。 AC代码: #include &lt;iostream&gt; #include &...

Fighting_Eagle的博客 303

POJ-3278 Catch That Cow(广搜)

POJ-3278 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 an...

碳酸钙的01妖精的博客 204

【BFS练习】POJ 3278 Catch That Cow && CH2501 矩阵距离

POJ 3278 Catch That Cow 用一个vis数组标记一下每个点是否被访问过,否则TLE或者MLE… #include <queue> #include <cstdio> #include <cstring> #include <iostream> using namespace std; const int N=1e5; int a,...

nefu_ljw的博客 431

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

POJ 3278 Catch That Cow

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,00

u010084308的专栏 919

[POJ 3278]Catch That Cow[BFS]

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

闲停 610
上一篇: lower_bound && upper_bound 小结
下一篇: POJ1426 Find The Multiple
muximuxi525
博客等级 码龄15年 134粉丝 294原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值