
日记
前几天实在是太颓废了点,直到今天才恢复。
今天主要的就是 VP 昨天晚上的 CF,还有改题。
Make a PalindromeLink to
我们设整个数列第 小的是 ,那么小于 的一定会被留下来,而 是可以被选择留不留下来的。小于等于 的数的数量又一定大于等于 。所以我们只考虑小于等于 的数。
我们把所有小于 的单独拎出来,那么他们一定要是一个回文串,否则输出 NO
,然后如果这些数的数量小于 ,那么我们就需要把那些在小于 的数之间的缝里的 加进去。如果在 数量也回文的情况下都凑不出 个,就说明无解。
最后把所有的无解都判掉就可以输出 YES
了。
Make it ZeroLink to
先把无解和只用一次特判掉。
我们考虑 的情况。设它们是 ,观察题解得到只要有解就说明次数 ,我们又把 的情况特判掉了,所以只能是 次。
我们发现两次的分界点不可能在同一个地方,所以只能分别在 的缝里和在 的缝里。设第一次的 ,第二次的 ,那么有
解方程得出 。构造就这么构造:, 就能够算出来了。
的情况类比一下,设 表示 前面的数的和小于 ,加上 就大于 了,那么 所对应的两次操作就是 ,左边就是 ,右边就是 。
Appending Permutations (Easy Version)Link to
我们有朴素的 但是能过 dp:设 表示填到 结尾的方案数。转移就去枚举最后一段。
但是我们发现样例都过不了。究其原因是这样子的:1 2 3 4 1 2
被计算了两次,一次是 1 2|3 4 1 2
,另一次是 1 2 3 4|1 2
。我们把它给一般化:。而且这样有要求:。我们再记录一个 表示 以 结尾(且不用考虑是否算重)的方案数。我们在没有偏移量时将 减掉一个 就行。
后日谈 Link to 后日谈
我每天真的没有在虚度光阴吗?
日记
© 伊埃斯 | CC BY-NC-SA 4.0