题解 CF896B Ithea Plays With Chtholly
著名的 ODT 场的题。
给 \(m\) 个数,放到 \(1\to n\) 一个位置上,若 \(1\to n\) 都被填满且不下降就胜。强制在线。
看到题忽然觉得是水题,这不就最长不下降子序列的那个吗!直接上个二分就准备交了,装模作样地论证了一番:“这最长不下降子序列都最长了它又保证有解那肯定是了”,还想着这怎么可能那么简单。
怎么可能那么简单!
反例:
5 5 9
9 1 8 1 7
若一个从前往后一个从后往前就可以完成,而那个做法还只填了 1 1 7
呢!
问题出在哪里?
- 最长不下降子序列要求相对位置不变,而这个可以变。
但别着急放弃。这是一个对的做法,只是浪费的步数多一点,那么浪费多少步呢?每一个最多被填 \(1\) 次并覆盖 \(c-1\) 次,所以最多要 \(n \times c\) 步。
啊!那 \(m\) 的限制不是这个步数的一半吗?那么就搞两个上面的,头一个尾一个,然后按照和 \(\frac{c}{2}\) 的大小关系分开就好了。
妙啊!