[Procedure #16] CF2108F Fallen Towers
这是指非严格递增吧。。我们先来看看怎么操作能够操作出合法的结果。
我们可以只看相邻的两个的大小关系,是等价的。前面的一个比后面的一个大的概率更大
我们考虑按照这样一个顺序:从后到前依次操作,这样,我们总会获得一个最大位置 \(k\),满足无法构成连续上升序列,但是,我们考虑这个最大值方案,除非 \(k=n\),否则必然不可行,因为下一个必然没有足够方块来递增了。而 \(i<k\) 的方案也会由于 \(i\) 位置在中途把前面给他的方块抛出去而导致自己无法合法。
所以我猜测最终一定是达到整个序列的逐渐改变,不会是什么 11223355 这种一下跳两个的情况?好像有问题。而且似乎没用。
总之,一个点什么时候抛,就看它决定自己的值是几(第一个位置显然只能是 0),然后在前面对应的位置抛。所以我们至少解决了给定一个最终序列,构造一个操作序列的问题。我觉得刚刚的结论是对的,因为如果是这样,那么我选择变小一个,肯定是更优秀的,而且能给后面的数更多能动性,所以通过决策包容性可证。
那么同样的思路,我们可以考虑先放置很多 0,这样肯定能为后面的数提供足够多的能动性,然后我们采用一步上一个的速度扩展。我们考虑枚举放多少 0,然后问题转化为如何快速判定可行性,再次转化为计算第 \(n\) 个点有多少可行性。哦,答案有单调性。
[Finish] [ALL PERFECT!]
15:00-16:40
