20241103 训练记录

杂题选讲

Omkar and Landslide

可以发现,我们把一轮操作分解成对每个位置的单个操作,那么这些单个操作的顺序是可以随意调换的。由于最后一定会操作到不能继续操作为止,这样一轮一轮的操作就可以等价为:顺序操作 1n 的每个位置,若这个点能向前滑坡,就一直滑到不能滑为止。

那么从这样的操作方式中,我们可以发现一个结论:一定只存在不超过 1i,使得最终数组中 hi=hi+1

具体证明参见这篇题解。大概意思就是说对 1n 一次进行上述操作时,若前面没有相同位置,则至多出现一个相同位置;若前面有相同位置,则会减少一个相同位置或不变,于是最终的相同位置至多 1 个。

有了这个结论之后,我们先假设不存在相同位置,设第一个位置的最终值为 x,因为最后的数组是一个等差数列,和就为 n(2x+n1)2。设原数列的和为 s,则前面的式子就等于 s,于是可以直接解出 x 的值。

再考虑有一个相同位置 p 的情况,那么此时 n(2x+n1)2p=s。那么先对第一种情况解出的 x 取上整,这样得到的也是第一个位置的值。所以 p=n(2x+n1)2s,那么将等差数列的后 p 个位置减去 1 即可得到答案。

posted @   陆羽扬  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示