前言
该拿的分一分不失,是我本次GDOI最成功的地方
Day0
考前延续了在JZ腐败的习惯,直到十点半还在淦CR,突然意识到我自己可能真的完蛋了,于是删了安卓模拟器来复习模板(事实证明并没有对后面的解题起到作用但是直到心情恢复了一点)
带着非常慌张的心,抱着自己带的抱枕,还是睡着了
Day1
早餐超级好吃
直到走到了一中才发现天气热到爆炸,还好考场里面有空调,路上一直在看自己博客里面的FFT模板
开考前30分钟,马上开始写FFT和多项式求逆,希望如果能碰到一道裸题就是血赚(然而,我数学功底这么差肯定是没戏的)
看看题目,T1比较好玩,枚举一下因子加个break就好了
第二题,看起来很眼熟,也想到了差分,but问题就在于,我之前做过一道题目,也是一样的大意,只不过只能向着一个方向转而且不可以取模,于是就在这里被困住了,想到了差分但是没有想到正解,开始往dp想
我们发现一件事情,一个位置显然不可能又被加也又被减,证明是显然的,先看第三题
T3发现如果没有修改,就可以直接上主席树,所以把修改拿出来单独计算贡献
修改是一个三维偏序的问题,时间,时间+深度,子树限制三个维度
沿用上面的思想,可以写一个BIT套主席树,这种东西我考场上肯定搞不出来(我太菜辣),让后感觉我凉凉了
回去淦第二题
发现了这个性质,以及第二个样例说明的性质(可以将一个数加上m使得答案变小)我们可以写一个dp
用f[i][j]表示做到节点i,j表示这个i被进行的操作是加还是减
由于我当时还有一个结论就是,一个位置的数被加上m不可能超过1次,所以j就有四种状态(减去a[i],加上m-a[i],减去a[i]+m,加上2m-a[i])
那么转移就直接枚举j和j' 如果j和j' 奇偶性相同,那么肯定就可以延伸,f[i][j]=f[i-1][j']+max(0,a[i][j]-a[i-1][j'])