2021牛客OI赛前集训营-普及组(第七场)
比赛链接
2021牛客OI赛前集训营-普及组(第七场)
B.采集灵石
题目描述
牛牛打开了一个有趣的游戏。在游戏中,灵石是一种非常重要的资源。每位玩家每天有且仅有一次采集的机会。
灵石会在许多浮岛上刷新,每个浮岛上灵石刷新数量可能不同。这些浮岛之间通过传送法阵相连,激活每个岛屿上的传送法阵花费的灵石数量也不同。玩家可以耗费 块灵石从任意一个其他浮岛或初始平台前往第 个浮岛。采集完毕后玩家可以从任何浮岛直接退出地图。
现在,牛牛手中有着 块灵石,他想知道自己今天采集结束后最多能拥有多少块灵石。牛牛只能在周末玩一小时游戏,他希望你能编写一个程序帮他及时算出来。
输入描述:
第一行两个正整数 分别表示浮岛的数量和牛牛手中初始的灵石数量。
接下来 行,每行两个正整数,第 行的正整数 表示第 个浮岛上今日刷新的灵石数量, 表示传送到第 个浮岛所需的灵石数量。
输出描述:
一个正整数,表示牛牛今天采集后最多能拥有的灵石数量。
示例1
输入
输出
示例2
输入
输出
示例3
输入
输出
备注:
对于 的数据,满足
对于 的数据,满足
保证答案在int范围内。
解题思路
贪心
对于没有收益的岛屿肯定是不去的,为使收益尽可能大,应该尽量把那些能去的且有收益的岛屿去完,才有可能去那些更难去的岛屿~
- 时间复杂度:
代码
C.跳跃的排列
题目描述
小 很喜欢排列,这次他有一个长为 的排列 。由于他音游玩多了,所以他想让排列也跳跃起来。他定义一次排列的跳跃为:
令 表示最大的 满足 ,则 。最后对于所有 ,将 赋值为 。
他想重复上述操作若干次。若操作 次和操作 次序列保持不变,那么跳跃停止,跳跃次数为 。
他想知道排列会跳跃多少次,请你来帮他计算一下。
输入描述:
第一行, 输入一个数 。
第二行输入 个数,第 个数表示 。
输出描述:
输出排列的跳跃次数。
示例1
输入
输出
说明
经过 轮操作后,序列变成 ,经过 轮操作后,序列仍然是 ,因此排列跳跃了 次。
示例2
输入
输出
说明
经过 轮操作后,所有数都变成了 ,经过 轮操作后,序列仍然全都是 ,因此排列跳跃了 次。
示例3
输入
输出
说明
经过 轮操作后,序列仍然是 ,因此排列没有进行跳跃。
备注:
对于奇数编号的数据,满足给定的排列形如 或 。
对于 的数据,;
对于 的数据,;
对于 的数据,。
解题思路
找规律,模拟
假设我们已经经过了一次跳跃,
不会。因为 取的是最靠右且大于 的值,第一次跳跃后,后面的值还是不会大于
所以,答案不会超过1,序列逆序时即0次跳跃
- 时间复杂度:
代码
D.防御法阵
题目描述
牛牛悄悄溜进了敌人的阵地,准备破坏敌人的城墙和防御法阵,破坏防御法阵可以给牛牛带来经验值。
敌人的城墙分为 块,这些城墙排成一排,不成环。牛牛可以破坏 块城墙,他可以从任意一点开始不断破坏两侧相邻的城墙。
每块城墙下方刻有诸多防御法阵。每个法阵需要耗费不同的时间来破坏。同时,为了防止对手发现,牛牛在每块城墙下仅能停留 秒。经过的时间忽略不计。
破坏每个法阵会带来不同的经验值。并且,当相邻的城墙已经被破坏时,经验值会增加。
举例来讲,假设牛牛在某块城墙收获 点经验值,但该城墙一侧(按照破坏顺序的规则,显然只有一侧可能被破坏)收获经验值为,那么这块城墙的经验数变为。而当某块城墙一侧有块城墙被破坏,其实际收获的经验值为
一段城墙得到的经验值为这一段城墙中每一段得到的经验值之和。
显然,最终的经验值还和破坏顺序有关。
现在,牛牛想知道他能得到的经验值最大是多少。
Note:上述的是指城墙左侧(或右侧)连续nn个城墙被破坏时获得的经验值。
输入描述:
第一行三个整数 ,含义见题目描述。
接下来 行,每行首先有正整数 表示该块城墙下方的法阵数量,接下来 个正整数,依次是第 个法阵破坏后的经验值 ,第 法阵破坏的用时 。
第 个法阵破坏后的经验值和破坏用时,直到第 个法阵。
输出描述:
一个正整数,表示牛牛能够得到的最大经验值。
示例1
输入
输出
说明
城墙共段,每段在5秒内破坏,不计相邻城墙的破坏效果加成的情况下,依次能收到最多点经验值。破坏段,此时选择先破坏中间的城墙获得点经验值,再依次获得点经验值,最终能够造成最大点经验值。计算过程如下
示例2
输入
输出
备注:
对于 的数据,满足
对于另外 的数据,满足
对于额外 的数据,满足
对于 的数据,满足
保证答案在long long int范围内
解题思路
01背包、区间dp
每个城墙可利用01背包求出最大经验,现在题目可转换为:给出 个数,从中有顺序地选出 个连续的数,使最终的结果最大
- 状态表示: 表示从 开始,一共有 块的城墙的最大经验值
- 状态计算:
分析:选取一段从 开始,共有 块的城墙,要么从破坏开头,要么破坏尾部~ - 时间复杂度:
代码
__EOF__

本文链接:https://www.cnblogs.com/zyyun/p/15422880.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!