Catch That Cow POJ - 3278

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

using namespace std;

const int Max = 100000+5;

int N, K;

bool pos[Max];

//int dir[3] = {-1, 1};

struct Node
{
    int p; //position
    int step;
    Node(){
        p = 0;
        step = 0;
    }
    Node(int q, int b){
      p = q, step = b;
    }
};
Node tmp1;

void bfs()
{

    queue<Node> q;
    while(!q.empty()){
        q.pop();
    }
    Node tmp;

    tmp.p = N;
    tmp.step = 0;
    //   cout << tmp.p << endl;
    q.push(tmp);
    pos[tmp.p] = true;

    while(!q.empty()){
        tmp1 = q.front();

        if(tmp1.p == K){
            return;
        }
        q.pop();

        for(int i=0; i<3; i++){

            Node tmp2;

            if(i == 1){
                tmp2.p = tmp1.p*2;
            }
            else
                tmp2.p = tmp1.p+i-1;

            cout << tmp2.p << endl;
            //judge
            if((!pos[tmp2.p]) && tmp2.p >=0 &&tmp2.p <= Max){
                tmp2.step = tmp1.step+1;
//                cout << tmp2.t << " ";
                q.push(tmp2);

                pos[tmp2.p] = true;

            }
        }
//        cout << endl;

    }

}

int main()
{
    while(cin >> N >> K){
        memset(pos, false, sizeof(pos));
        bfs();
        cout << tmp1.step << endl;
    }

    return 0;
}*/


#include<iostream>
#include<cstdlib>
#include<queue>
#include<string.h>
#include<cstdio>

using namespace std;

const int Max = 100000+5;

int N, K;

bool pos[Max];
int step[Max];
//int dir[3] = {-1, 1};

struct Node
{
    int p; //position
    int step;
    Node(){
        p = 0;
        step = 0;
    }
    Node(int q, int b){
      p = q, step = b;
    }
};
int tmp1;

void bfs()
{

    queue<int> q;
    while(!q.empty()){
        q.pop();
    }
    int tmp;

    tmp = N;
    step[tmp] = 0;
    //   cout << tmp.p << endl;
    q.push(tmp);
    pos[tmp] = true;

    while(!q.empty()){
        tmp1 = q.front();

        if(tmp1 == K){
            return;
        }
        q.pop();

        for(int i=0; i<3; i++){

            int tmp2;

            if(i == 1){
                tmp2 = tmp1*2;
            }
            else
                tmp2 = tmp1+i-1;

//            cout << tmp2 << endl;
            //judge
            if((!pos[tmp2]) && tmp2 >=0 &&tmp2 <= Max){
                step[tmp2] = step[tmp1]+1;
//                cout << tmp2.t << " ";
                q.push(tmp2);

                pos[tmp2] = true;

            }
        }
//        cout << endl;

    }

}

int main()
{
    while(cin >> N >> K){
        memset(pos, false, sizeof(pos));
        memset(step, 0, sizeof(step));

        bfs();
        cout << step[K] << endl;
    }

    return 0;
}

 

ArduPilot简介 一,什么是ArduPilot? ArduPilot是一个可信的,多用途的,开源的自动驾驶系统。该系统支持了非常多的交通工具类型,包括多旋翼无人机,传统直升机,固定翼飞行器,船,潜艇,巡逻车等。源码由大型开发者社区的专家和爱好者共同开发和维护。也欢迎更多的开发者加入源码的迭代演进,最好的“打开”方式就是加入开发者团队论坛。该论坛对所有人开放,在这里可以深入感受到开发者们对ArduPilot的热爱。 论坛链接:ArduPilot Discourse 开发者指南:Welcome to the ArduPil 阅读详情

相关推荐

使用vite+react+ts+Ant Design开发后台管理项目(四)

本文将引导开发者从零基础开始,运用、react、react-router、react-redux、Ant Design、less、tailwindcss、axios等前沿技术栈,构建一个高效、响应式的后台管理系统。通过详细的步骤和实践指导,文章旨在为开发者揭示如何利用这些技术工具,从项目构思到最终实现的全过程,提供清晰的开发思路和实用的技术应用技巧。使用vite+react+ts+Ant Design开发后台管理项目(一)使用vite+react+ts+Ant Design开发后台管理项目(二)

lbking666666的专栏 2007

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

matinal:S4 HANA 详解ACDOCA与BSEG的区别都在这了

当你在Coding Block中添加自定义字段的时候

matinal 當冬夜漸暖 。公众号:matinal 4582

POJ-3278 Catch That Cow

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

鱼头的水题之路 443

ESP-IDF下载配合MQTT协议接入云平台实例

通过ESP-IDF下载环境搭建,结合MQTT协议实现设备与云平台通信,详解从配置到连接的完整流程,助力物联网应用开发。重点涵盖espidf下载和MQTT集成关键步骤。

weixin_28913879的博客 454

【unity游戏开发入门到精通——UGUI】文本控件 —— TextetMeshPro新文本控件(TextMeshPro - Text(UI)和TextMeshPro - Text)

文本组件是UGUI中最常用的组件,它的作用是对文本数据进行处理并显示。UGUI的文本组件可以分两为种——Text旧文本控件、TextMeshPro新文本组件。本文主要是介绍TextMeshPro新文本控件,而TextMeshPro新文本控件又可以分为两种——TextMeshPro - Text(UI)和TextMeshPro - Text。TextMeshPro是Unity收购的一个第三方插件,现在已经自动内置到编辑器中,只要使用一次就会自动导入到工程。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3766

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

学Simulink--基础微电网场景实例:基于Simulink的微电网经济调度优化策略仿真

指标传统调度PSO经济调度(本文)目标值总运行成本(元/h)45.232.5(工况1)降低≥20%调度响应时间(s)25<30储能SOC范围(%)50~50(不变)28~56(动态优化)20~80弃风弃光率(%)0(强制满发)0(优化消纳)0原理:微电网经济调度通过PSO算法优化各单元出力,以总成本最小化为目标,平衡功率平衡与设备约束;建模:Simulink中用实现PSO控制器,结合PV/WT/DG/ESS模型,完成闭环优化;验证。

amy_mhd的博客 67

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

MIKE水动力笔记8_冷启动与热启动

在【MIKE水动力笔记5_建立水动力模型】中,讲到【Step 2 设置模型参数】中的【Initial Conditions】时,提到了冷启动与热启动。本博文就详细讲解何为冷启动、热启动,并通过一个案例具体分析两者不同。...

晏长街的博客 6568

半导体物理基础:载流子输运理论_(4).载流子浓度与费米能级

费米能级(Fermi Level)是描述半导体中电子和空穴能量分布的基准能级。在绝对零度下,费米能级以下的所有能级都被电子占据,费米能级以上的所有能级都是空的。随着温度的升高,电子会获得足够的能量跃迁到费米能级以上的能级,形成导带中的自由电子和价带中的空穴。费米能级在半导体中的位置取决于掺杂浓度和温度。对于本征半导体,费米能级位于禁带的中心;对于掺杂半导体,费米能级会偏移,具体位置取决于掺杂类型和浓度。载流子浓度(Carrier Concentration)是指半导体中自由电子和空穴的数量密度。

2401_87715305的博客 832

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

scratch绘制四个三角形 2024年6月中国电子学会 图形化编程 scratch编程等级考试二级真题和答案解析

​ scratch绘制四个三角形 一、题目要求 2024年6月电子学会图形化编程Scratch等级考试二级真题 1、准备工作 1.保留默认角色小猫; 2.添加背景Stars。 2、功能实现 1 .隐藏角色小猫,设置画笔裙始位置为(0,0),画笔颜色为黄色,画笔的粗细为5; 2. 点击绿旗,绘制如下图所示图形,三角形的边长为50。 二、案例分析 1、角色分析 角色:小猫 2、背景分析 背景:Stars背景 3、前期准备 1. 保留默认的小猫不变 ​

青少年编程学习指导 1717

[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

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

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

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

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

Camera2Demo

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

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

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

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

[POJ 3278]Catch That Cow[BFS]

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

闲停 610

【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(广搜)

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

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)

题目网址: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的博客 70

Poj3278 Catch That Cow

Poj3278 Catch That Cow题意要点代码 题意 FJ抓奶牛,FJ的位置为N(0≤N≤100,000),奶牛的位置为K(0≤N≤100,000)。有三种移动方式抓奶牛:N-1/分钟,N+1/分钟,N*2/分钟。奶牛不会动,问FJ抓住奶牛至少需要多少分钟? 要点 1,这是一道简单的BFS题。 2,注意记录走过点,不然会超时。 代码 #include<stdio.h> #in...

qq_33005379的博客 221
上一篇: Dungeon Master POJ - 2251
下一篇: Judge Internal Error (map的value值排序)
KLFTESPACE
博客等级 码龄9年 66粉丝 655原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值