22河北省赛 F

news2024/9/23 11:13:55

Problem - F - Codeforces

思维构造题

题意:

一个长为n的直线洞窟中, 每一个1~n的整数位置都有一个洞口可以容纳一只兔子

有一只兔子在这个洞窟里四处躲藏, 每一回合都必须向左或者向右移动, 不能待在原地

你每一次都可以在兔子移动之前检查任何一个洞口

要求在最坏的情况下用最少的次数抓住这只兔子, 且输出每一步检查的洞口

题解:

首先这题拿到先看样例

不考虑兔子一开始就在2洞口的情况, 因为兔子必须要移动, 所以兔子在第一步结束时候会来到洞口2, 显然没有去搜1和3的必要, 即起点和终点不需要搜索, 因为兔子在末端洞口时, 一定会被逼到末端+1或者末端-1的位置

接下来继续模拟, 假设n=5

根据上文我们从2开始向右搜索, 如果兔子在4位置, 我们搜索2位置, 兔子只能向右走来到5, 因为向左走来到3位置就会被我们搜到, 接下来我们搜3, 兔子来到4, 再向右搜一个位置正好被搜到

假设兔子在3位置, 我们先搜索了2, 兔子在3位置可以跑到我们搜过的2位置去, 就正好错过了, 此时继续向右搜索来到3位置, 兔子可以走到1位置或者3位置, 和我们的位置奇偶性相同了

根据上文的模拟, 我们可以粗略得出一个结论: 当兔子和我们搜索的位置奇偶性相同时, 兔子一定会被逼到末端-1的位置被捉住, 而不同时, 兔子可以在末端的位置正好与我们错过(兔子这里考虑的是最坏情况), 但改变了奇偶性, 当我们回头再来的时候, 将被我们捉住

根据这个结论再验证几个数据之后证实是正确的之后敲代码

交了之后就会发现wa在了一个神奇的样例: n=1和n=2

特判此处得解

void solve()
{
    cin>>n;
    if(n==1)
    {
        cout<<"1\n1"<<endl;;
        return;
    }
    if(n==2) n=3;
    cout<<(n-2)*2<<endl;
    for(int i=2;i<=n-1;i++) cout<<i<<' ';
    for(int i=n-1;i>=2;i--) cout<<i<<' ';
    return;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/372924.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

银行数字化转型导师坚鹏:平安银行数字化转型—橙E网战略研究

平安银行对公业务数字化转型案例—橙E网战略研究课程背景&#xff1a; 很多银行存在以下问题&#xff1a; 不清楚银行对公业务数字化转型能否成功&#xff1f; 不知道其它银行对公业务数字化转型的实际做法&#xff1f; 课程特色&#xff1a; 用实战案例解读平安银行对公业务…

python网络数据获取

文章目录1网络爬虫2网络爬虫的类型2.1通用网络爬虫2.1.12.1.22.2聚焦网络爬虫2.2.1 基于内容评价的爬行策略2.2.2 基于链接结构的爬行策略2.2.3基于增强学习的爬行策略2.2.4基于语境图的爬行策略2.3增量式网络爬虫深层网页爬虫3网络爬虫基本架构3.1URL管理模块3.2网页下载模块3…

算法进阶-动态规划

经典例题 大家肯定想用递归做 思路大概就是这样 递归到最后一行就是对应的D(i,j) 然后往上推 但是这样会超时&#xff0c;因为存在大量的重复计算 比如调用第一行MasSum(7)需要调用MaxSum(3)和MaxSum(8) 但是调用第二行MaxSum(3)还要调用3行的MaxSum(8)和3行的MaxSum(1) 第二行…

English Learning - L2-2 英音地道语音语调 2023.02.23 周四

English Learning - L2-2 英音地道语音语调 2023.02.23 周四查音标的工具怎么练习效果好准备工作大小声练习大元音开口度的对比舌位对比复习后元音 /ɑː/ /ɔː/ /uː//ɑː//ɔː//uː/前元音 /iː/发音技巧对应单词的发音对应句子的发音常见的字母组合中元音 /ɜː/发音技巧…

作业2.25----通过操作Cortex-A7核,串口输入相应的命令,控制LED灯进行工作

1.通过操作Cortex-A7核&#xff0c;串口输入相应的命令&#xff0c;控制LED灯进行工作 例如在串口输入led1on,开饭led1灯点亮 2.例如在串口输入led1off,开饭led1灯熄灭 3.例如在串口输入led2on,开饭led2灯点亮 4.例如在串口输入led2off,开饭led2灯熄灭 5.例如在串口输入led…

golangの并发编程(GMP模型)

GMP模型 && channel1. 前言2. GMP模型2.1. 基本概念2.2. 调度器策略2.3. go指令的调度流程2.4. go启动周期的M0和G02.5. GMP可视化2.6. GMP的几种调度场景3. channel3.1. channel的基本使用3.2. 同步器1. 前言 Go中的并发是函数相互独立运行的体现&#xff0c;Gorouti…

RabbitMQ学习(十一):RabbitMQ 集群

一、集群1.1 为什么要使用集群前面我们介绍了如何安装及运行 RabbitMQ 服务&#xff0c;不过这些是单机版的&#xff0c;无法满足目前真实应用的 要求。如果 RabbitMQ 服务器遇到内存崩溃、机器掉电或者主板故障等情况&#xff0c;该怎么办&#xff1f;单台 RabbitMQ 服务器可以…

西北工业大学大学物理(II)期末试题选填解析2021-2022

2 金属薄片&#xff0c;就暗示了载流子是电子了。3 熟练掌握左右手即可。4 又是位移电流。6 感应电场。随时间变化着的磁场能在其周围空间激发一种电场&#xff0c;它能对处于其中的带电粒子施以力的作用&#xff0c;这就是涡旋电场&#xff0c;又叫感生电场。涡旋电场是非保守…

使用file-selector-button美化原生文件上传

前言 你平时见到的上传文件是下面这样的? 还是下面这种美化过的button样式 还是下面这种复杂的上传组件。 <input type="file" >:只要指定的是type类型的input,打开浏览器就是上面第一种原生的浏览器默认的很丑的样式。 下面的两种是我从ElementUI截的图,…

Flume简介

Flume是一个高可用&#xff0c;高可靠&#xff0c;分布式的海量日志采集、聚合和传输的系统&#xff0c;能够有效的收集、聚合、移动大量的日志数据。 优点&#xff1a; 使用Flume采集数据不需要写一行代码&#xff0c;注意是一行代码都不需要&#xff0c;只需要在配置文件中…

切记:别手欠升级手机系统!

今天手欠升级了手机系统&#xff0c;相机直接不能用了......过年手机坏了&#xff0c;买的报修险申请了售后&#xff0c;换了主板换主板还没保存数据&#xff0c;结果大家都懂&#xff0c;手机里那么多照片视频全没了&#xff0c;这个怪自己平时没做数据备份&#xff0c;手机坏…

【fly-iot飞凡物联】(2):如何从0打造自己的物联网平台,使用开源的技术栈搭建一个高性能的物联网平台,目前在设计阶段。

目录前言1&#xff0c;fly-iot 飞凡物联2&#xff0c;mqtt-broker 服务3, 管理后台产品/设备设计4,数据存储目前使用mysql&#xff0c;消息存储到influxdb中5,规则引擎使用 ekuiper6, 总结和其他的想法前言 本文的原文连接是: https://blog.csdn.net/freewebsys/article/detail…

用一个例子告诉你 怎样在spark中创建RDD

目录 1. 前言 2. 分发驱动中scala集合中的数据 2.1 parallelize 2.2 makeRDD 2.3 range 3. 分发外部存储系统中的数据 3.1 textFile 3.2 wholeTextFiles 1. 前言 众所周知&#xff0c;spark是一种计算引擎(用来计算数据)&#xff0c;但是数据从何而来呢&#xff1f; …

Windows注册表的读写操作

目录1 注册表(Registry)介绍1.1 注册表简介1.2 注册表位置1.3 开启/禁用 注册表编辑器1.4 注册表的结构1.5 修改注册表实例2 程序中对注册表的读写操作2.1 打开和关闭注册表2.2 创建和删除指定的注册表键2.3 读取和设置指定注册表中某个键值2.4 增加和删除注册表键中某个键值2.…

华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典

文章目录2023 年用 Python 语言解华为 OD 机试题&#xff0c;一篇博客找全。华为 OD 机试题清单&#xff08;机试题库还在逐日更新&#xff09;2023 年用 Python 语言解华为 OD 机试题&#xff0c;一篇博客找全。 在 2023 年&#xff0c;Python 已成为广泛使用的编程语言之一&…

rabbitmq添加用户,虚拟机步,设置rabbitmq配置文件

第一步&#xff0c;登录后台控制页面 http://ip:15672第二步&#xff0c;添加用户和权限 重点&#xff1a;选择Admin和Users 第三步&#xff0c;添加虚拟机 点击侧边的Virtual Hosts 第四步将虚拟机和用户搭配 注意新建好后&#xff0c;在虚拟机列表中&#xff0c;点击虚拟机…

ubuntu安装spinningup

ubuntu安装spinningup 经过这篇博客安装好mujoco和mujoco-py后&#xff0c;下面安装强化学习代码库spinningup 按照spinningup官网的安装步骤走&#xff0c;下面我总结一下安装过程中出现的问题 在安装spinningup的时候&#xff0c;最好重建一个新的虚拟环境&#xff0c;因为…

基于springboot+vue的校园招聘系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

Java基础语法的心得总结

一、数据存储的理解可以参考第四大部分https://blog.csdn.net/xiaoxixicc/article/details/124222375个人理解&#xff1a;栈内存中保存的实际上是对象在堆内存中的引用地址。通过这个引用地址可以快速查找到保存中堆内存中的对象。二、static静态变量&#xff08;共享的作用&a…

[数据结构]:05-循环队列(链表)(C语言实现)

目录 前言 已完成内容 循环队列实现 01-开发环境 02-文件布局 03-代码 01-主函数 02-头文件 03-QueueCommon.cpp 04-QueueFunction.cpp 结语 前言 此专栏包含408考研数据结构全部内容&#xff0c;除其中使用到C引用外&#xff0c;全为C语言代码。使用C引用主要是为了…