CF1919D 01 Tree
-
今天是山东省选
考完的晚上,其实考完 的时候就已经退役了,这次来只是考着玩的。一想到明天晚上又要回到 的生活心里又有些对 舍不得。 -
我不清楚明天的省选到底会正常发挥还是心态爆炸,也不知道题难还是简单,我只知道明天就要结束了。
-
最近自己在训练
的贪心题,主要是想训练一下思维,发现自己 的题产出挺困难的,有空训练一下。 -
不说多了,开始说这道题。
-
首先分析第一个样例,同样例解释的图,我们可以发现我们可以把
3 4
的那一部分缩成一个点,此时序列变为2 1 0 1
,依然是可构造的。 -
因此我们就来试着猜想一个结论:如果原序列每次把相邻两个满足
x x+1
的数缩成x
,缩到最后只剩下 的话就说明满足,否则不满足。 -
我看到这个问题转化后首先想的是区间
,但显然复杂度太高了。然后又想因为不可能会有数比最大值更大,因此我们可以从最大值开始操作,看能否操作。但又发现对于多个相同的最大值无法确定判断顺序。遂看题解。 -
题解里有一个人的做法非常巧妙,就是对于每个值非
的 ,记左边第一个 的位置为 ,右边第一个 的位置为 ,则需要满足 中至少有一个是 ,并且原数组中有且只有一个 。 -
为什么这么干是对的呢?我感性理解了一下。当对最大数用这种方式判断的时候,显然成立。然后对于一个
,如果 ,满足条件则一定会被缩成 ,然后又能和 缩成一起。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?