复活的做题记录

本来妄想摈弃博客,全靠自己大脑的记忆来安排学习。
直到省选前几天发现,有个题,我的一个绝妙的处理办法,第三遍,被自己忘掉了。
遗忘是个坏东西,它使人退步。

稍微恢复下本博客的学术作用吧,每天怨天尤人并不能二试翻盘。
至于为什么选在这个日子开始呢?
本来想等到一试成绩出来,亲眼看到自己爆零。
然后评测方咕咕咕了。
选在愚人节开始又不大好。
就这样了。

1.#372. 【UR #17】滑稽树前做游戏

注意到对于任意 0 a 1 0 \le a \le 1 ,如果所有 x i x_i 均小于等于 a a ,那么 m a x ( x i , m a x ( x u i , x v i ) ) a max(x_i,max(x_{u_i},x_{v_i})) \le a 的概率都相等。
所以算出 P ( a n s 1 ) P(ans\le1) 即可知 E ( [ x 1 ] x ] ) E([x \le 1]*x])
至于如何计算,我们可以按照 x i 0.5 |x_i-0.5| 的大小一个个把x加进去。
转移的时候讨论下绝对值怎么拆即可,这一部分的复杂度 O ( 2 n n ) O(2^n*n)
那么 E ( [ x > 1 ] x ] ) E([x \gt 1]*x]) 怎么算?
假设我们要计算 P ( a n s 2 a ) P(ans \le 2-a) .其中 0 a 1 0 \le a \le 1
x x 变成 1 x 1-x ,然后 m a x ( 1 x 1 + 1 x 2 ) max(1-x_1+1-x_2) 就变成 2 m i n ( x 1 + x 2 ) 2-min(x_1+x_2)
于是问题变成 P ( m i n ( x 1 + x 2 ) x ) P(min(x_1+x_2) \le x)
这很简单嘛, P ( m i n ( x 1 + x 2 ) x ) + P ( m a x ( x 1 + x 2 ) x ) = 1 P(min(x_1+x_2) \le x)+P(max(x_1+x_2)\le x)=1 ,做完了
但原题的式子里还要对 x i x_i 取max。
所以在处理min的时候需要先枚举 x i a x_i \le a 的点集再进行计算。
算完概率后还要简单积分才能获得答案,一开始我还把单点的概率&概率前缀和弄混了,推出了个错误的式子。
题解的做法就不提了,可能核心idea跟前述做法差不多,但效果相当于通过多维护一个多项式来获得蜜汁更优的复杂度。强行爆搜不证复杂度,果然是jiry_2的一贯风格。
不过维护概率密度函数这个东西一直没写过,哪天补一下
代码在此
2 25 25 2^{25}*25 挺卡的,把if(i>>j&1)改成类似于for(...;...;i^=i&-i)的状物并且优化了[2,4,8]->[1,2,3]的映射才过。

2.#201. 【CTSC2016】单调上升路径

这个题我的第一反应是观察题面里的证明,然后答案下界就是 n 1 n-1
再观察一下下发文件,构造 n 1 n-1 组匹配状物就行了。
第一反应是利用(i+j)%n来弄,然后发现i+i会连出自环。
石乐志了好久才发现点比边多一,可以取出个额外点把所有i+i都干掉。
巧妙地抢到了uoj上的最短AC记录

猜你喜欢

转载自blog.csdn.net/zxin__/article/details/88937165