NOIP 模拟赛:2024-10-21
T1:
定义一个序列的权值为相邻两个数较大值再求和。给定一个序列和
结论 + 模拟题,但是如果不把结论改成方便的形式,可以很难写。
结论:
T2:
定义两个竹竿之间的距离为一个竹竿顶端到达另一个竹竿顶端的最短移动距离,例如初始时,竹竿
现在你可以在相邻竹竿之间加一些水平的梯子,一个梯子建在
你想要加一些梯子,使得竹竿两两之间的距离的总和最小。在最小化距离总和的前提下,请问最少加多少个梯子。
容易观察到两根竹竿的最短路径必然是递减走到之间最矮的杆子,然后再一路递增上去。用单调栈之类的容易求出第一问。
然后第二问。考虑分治,每次从当前区间找到最矮的杆子
记
若
对右侧
怎么判断当前
T3:
一个数在对一个序列的贡献为它出现次数的 popcnt,一个序列的权值为每种数的贡献求和。求所有总和
把每个数的每个二进制位拆出来作为物品。二分套二分即可。外层二分 "权值为
T4:
先考虑排列。容易发现从大到小枚举,决策当前数去左边还是右边所需要经过的比它大的数个数更小。
对于数组,相等的数一起处理了,再一起标记即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!