十三届蓝桥杯省赛c++A组题解

news/2025/3/19 10:44:14/文章来源:https://www.cnblogs.com/qimox/p/18780566

十三届蓝桥杯省赛c++A组题解

青蛙过河(链接)

转换问题:

1.青蛙往返x次相当于去2x次
2.青蛙能否在y的跳跃能力下过河转换成是否满足长度为y的区间石头高度和不小于2x

转换2的思路:

每一个的长度为y的区间在每一次过河中一定会经过
反证法:若某个长度为y的区间没有被经过,那么一定有一步跳越了y+1步以上的距离
有了这个启发,就接着想问题的转换,转换是等价的,有了必要性得证明充分性
长度为y的区间石头高度和大于等于2x则青蛙能完成2x次过河
设经过每块石头的次数为a[i]
构造法:
1.第一步很特殊,我们只能落入\([1,y]\)区间,那么我们可以有\(\sum_{i=1}^{y} a[i]=2x\)
2.对于接下来的\([y+1,2y]\)区间,我们有区间[2,y+1]....[y,2y-1]可以得到\(\sum_{i=k}^{y+k-1} H[i]\geq2x\)
则有

\[\begin{cases} H[y+1]\geq a[1]\\ H[y+1]+H[y+2]\geq a[1]+a[2]\\ ...\\ H[y+1]+...+H[2y]\geq a[1]+...+a[y] \end{cases} \]

每个方程右边下标的位置能跳到左边的位置,区间\([1,y]\)能被区间\([y+1,2y]\)完美接纳
因为可以构造

\[\begin{cases} H[y+1]\geq a[y+1]=a[1]\\ H[y+2]\geq a[y+2]=a[2]-(H[y+1]-a[1])\\ ...\\ H[2y]\geq a[2y]=a[y]-(H[2y-1]+...+H[y+1]-a[y-1]-a[1]) \end{cases} \]

同理能递推\([ky+1,(k+1)y]\)
3.递推终止在尾部长度L小于y的区间
设前一个长度为y的区间为\([my+1,(m+1)y]\)
\([my+1,my+L]\)都能按照构造法跳跃到\([(m+1)y+1,(m+1)y+L]\),而\([my+L+1,(m+1)y]\)都能跳到岸边
接着\([(m+1)y+1,(m+1)y+L]\)也能跳到岸边
证毕!

问题解决

y越大越容易满足2x次过河,满足单调性,属于二分情况,直接对y二分搜索得到最小满足2x次过河的y

代码

#include <iostream>
using namespace std;
int sH[100005]={0};
int n, x;
bool check(int y)//y能够满足2x次跳跃返回true
{for (int i = 1; i <= n-y+1;i++)if(sH[i+y-1]-sH[i-1]<2*x)return false;return true;
}
int main(void)
{// 区间长度y就是答案,把对岸边当作石头cin >> n >> x;for (int i = 1; i <n; i++){cin >> sH[i];sH[i] += sH[i - 1];//构造前缀和}sH[n] = sH[n - 1] +(int)1e9;int l = 1, r = n;while (l<r){int mid = l+((r-l)>>1);if(check(mid))//右边的一定满足r = mid;//偏左elsel = mid + 1;}cout << l;return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

助你玩转——4G模组Air780EPM的GPIO设计~

本文将结合Air780EPM的硬件架构与软件框架,从管脚分配、电气特性、复用机制、代码开发四个维度,深入解析GPIO设计的全流程要点,为开发者提供从理论到实践的完整技术指南。 一、概述 开发方式:Air780EPM 仅支持 LuatOS 软件开发方式,不支持 AT 指令开发方式。若使用 AT 指令…

【Java】XxlJob入门

xxl-job概念 xxlJob是轻量级的可视化分布式任务调度平台,适用于中小型企业。主要特性如下:简单、动态、轻量级、支持弹性扩容缩容、事件全异步执行、跨语言。 调度中心和执行任务解耦 调度任务支持多种不同场景的路由策略、容错策略、触发策略 运维更便捷环境准备和部署 Gith…

快速掌握!4G模组:Air780EPM 天线设计说明

天线设计,也是4G模组应用中最容易踩坑的地方。今天主要分享讨论Air700ECQ/EAQ/EMQ系列模组,天线管脚到4G天线之间的电路设计和走线规则。 Air700ECQ/EAQ/EMQ模组属于Cat.1 bis R13架构,天线架构精简为单天线架构,去掉了分集接收天线,因此只需要一根天线。 知识点: Cat.1 …

24级数应二班课堂作业2

2024010068 刘晓津 几年几月多少天year = int(input("请输入年份: ")) month = int(input("请输入月份: "))if month in [1, 3, 5, 7, 8, 10, 12]:days = 31 elif month in [4, 6, 9, 11]:days = 30 elif month == 2:if (year % 4 == 0 and year % 100 != …

简谈如何用纳米压印技术制备测序芯片-测序芯片-flowcell-代加工-外协加工-委外加工-激光代加工-河南郑州-芯晨微纳(河南)

利用纳米压印技术(Nanoimprint Lithography, NIL)制备测序芯片(如DNA测序芯片或生物传感器芯片)的核心在于通过高精度模板在基材上高效复制纳米级结构,从而构建用于捕获、固定或检测生物分子的功能表面。以下是具体步骤和关键技术要点:测序芯片的功能需求 测序芯片通常需…

SpringSecurity5(7-会话管理)

Spring Security 的会话管理可控制用户身份验证的会话行为,支持并发会话限制、防止会话固定攻击(Session Fixation)、会话超时控制等。可结合 Redis 实现分布式会话共享,提升安全性与用户体验,适用于高并发应用场景。会话管理 http.sessionManagement()invalidSessionUrl(…

jstat--java内存分析工具

jstat利用JVM内建的指令对应用程序的资源和性能实时的命令行监控,包括堆大小和垃圾回收状况。命令## n1 刷新时间 n2 总共输出次数 jstat -gcutil pid n1 n2说明S0 :s0已使用的容量占比 S1:s1已使用的容量占比 E:eden已使用容量占比 O:老年代已使用容量占比 CCS:压缩类…

AI与.NET技术实操系列(八):使用Catalyst进行自然语言处理

引言 自然语言处理(Natural Language Processing, NLP)是人工智能领域中最具活力和潜力的分支之一。从智能客服到机器翻译,再到语音识别,NLP技术正以其强大的功能改变着我们的生活方式和工作模式。 Catalyst的推出极大降低了NLP技术的应用门槛。它支持文本分类、实体识别等…

ACT中使用正则表达式验证UI展示

近在编写ACT的过程中,遇到校验UI的展示校验,要求数据由Number+空格+base unit进行展示。同事分享了一份参考方法如下图:最终在方法里面使用如下: Public void functionName(String verifyContent) throw exception{String regex = \\d+\\s\\S+;Controller.assertTrue(Pat…

【GreatSQL优化器-17】DYNAMIC RANGE

【GreatSQL优化器-17】DYNAMIC RANGE 一、DYNAMIC RANGE介绍 GreatSQL 的优化器有一种扫描方式是动态范围扫描方式,类似于“已读乱回”模式,这种模式是在表有多个索引的情况下,对驱动表连接的时候部分选择索引的情况。优化器没有找到好的索引可以使用,但发现在知道前面表的…

20244225 《python程序设计》实验一报告

课程:《Python程序设计》 班级: 2442 姓名: 孟雨欣 学号:2024422 实验教师:王志强 实验日期:2024年3月18日 必修/选修: 公选课 一、实验内容 1.熟悉Python开发环境; 本次实验使用pycharm作为开发环境,首先在官网下载并安装PyCharm社区版,安装完成后打开软件,创建一个…

(收藏)UniGUI学习之UniDBGrid常用方法(转载)

1]DataSource设置 2]显示MEMO类型里的文字3]显示悬浮提示4]显示当前记录及总记录数5]读取所有记录,及分页6]在前面加上序号列,并设置序号字体大小,所有单元格 字体大小,垂直居中7]不显示标题栏8]点击表头,单列排序UniDBGrid1ColumnSort9]编辑 和 更新 数据10]获得某单元格里…