本来妄想摈弃博客,全靠自己大脑的记忆来安排学习。
直到省选前几天发现,有个题,我的一个绝妙的处理办法,第三遍,被自己忘掉了。
遗忘是个坏东西,它使人退步。
稍微恢复下本博客的学术作用吧,每天怨天尤人并不能二试翻盘。
至于为什么选在这个日子开始呢?
本来想等到一试成绩出来,亲眼看到自己爆零。
然后评测方咕咕咕了。
选在愚人节开始又不大好。
就这样了。
1.#372. 【UR #17】滑稽树前做游戏
注意到对于任意
,如果所有
均小于等于
,那么
的概率都相等。
所以算出
即可知
。
至于如何计算,我们可以按照
的大小一个个把x加进去。
转移的时候讨论下绝对值怎么拆即可,这一部分的复杂度
那么
怎么算?
假设我们要计算
.其中
把
变成
,然后
就变成
于是问题变成
。
这很简单嘛,
,做完了
但原题的式子里还要对
取max。
所以在处理min的时候需要先枚举
的点集再进行计算。
算完概率后还要简单积分才能获得答案,一开始我还把单点的概率&概率前缀和弄混了,推出了个错误的式子。
题解的做法就不提了,可能核心idea跟前述做法差不多,但效果相当于通过多维护一个多项式来获得蜜汁更优的复杂度。强行爆搜不证复杂度,果然是jiry_2的一贯风格。
不过维护概率密度函数这个东西一直没写过,哪天补一下。
代码在此
挺卡的,把if(i>>j&1)
改成类似于for(...;...;i^=i&-i)
的状物并且优化了[2,4,8]->[1,2,3]的映射才过。
2.#201. 【CTSC2016】单调上升路径
这个题我的第一反应是观察题面里的证明,然后答案下界就是
。
再观察一下下发文件,构造
组匹配状物就行了。
第一反应是利用(i+j)%n来弄,然后发现i+i会连出自环。
石乐志了好久才发现点比边多一,可以取出个额外点把所有i+i都干掉。
巧妙地抢到了uoj上的最短AC记录