Loading [MathJax]/jax/output/CommonHTML/jax.js

Loading

20220331刷题日记

P7207

注意到我们从 m 开始增量,设 x 是最小的满足 x&(n1)=n1 的值,那么 [m,x][l,n1] 按照顺序一一对应是满足条件的,证明放在最后。这样的话剩下的是一个子问题,用双指针可以 O(n)

i 是满足 m 中是 0n1 中是 1 的最高位,那么我们增量去做,一定是直到 i 和比 i 小的位都相同的时候才停止,那么我们从这里开始减 1,不难发现只对 i 后面的位有影响,所以是可以成立的。

P5307

首先 fi,j,k 是显然的 dp,其中第三维是 106 的,但是我们发现其实并没有非常多我们用得着的状态,我们考虑设 fr,s,n,计算这个东西我们只需要知道 fr1,s,n\ar,s,fr,s1,n\ar,s 对,关注到第三维只有 n 种选择。所以整个复杂度被优化到了 rsn

CF868F

首先列出 dp 式子。然后发现只能尝试四边形不等式,发现满足,于是考虑分治或者是二分栈。二分栈显然不是一个很好的选择,因为我们同样难以计算 w(i,j),于是我们考虑分治。一个比较巧妙的想法是我们按照莫队那样的做法去更新我们的区间,发现分治每一层都是 O(n),于是复杂度有保证。

posted @   hyl天梦  阅读(31)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示