8.23-8.25小记
题目名 | 算法 | 感悟 |
---|---|---|
CF1023G | 最小链覆盖=最大反链;dsu on tree | 感觉难搞的是ds部分呢。善用map.jpg |
CF1322E | “类”二分答案 | 一种思想:转化成\([\le mid]\)序列思考问题 |
[AHOI2022]钥匙 | 虚树+BIT | 小清新ds,善用性质 |
CF1677E | BIT | 小小清新ds,但是CF只有2h |
[JOISC2020]首都 | 虚树+倍增优化建图+tarjan | 挺一眼的我只能说 |
[NOIOL 2021 TG] 愤怒的小 N | 拉插+一个结论 | 没见过的话赛场只能打表看吧。善找规律。 |
ARC146D | 拆限制 | 我的评价是比C简单 |
我觉得需要讲点题。
CF1322E Median Mountain Range
一句话题意是给定序列 \(a\) ,每次把 \([2,n-1]\) 的数变成 \(median(a_{i-1},a_i,a_{i+1})\) 其中 \(median\) 是中位数。
然后问多久 \(a\) 能固定下来,以及最终的序列。
乍一看没想法,但考虑如果是01序列,咋就会做了嘛。因为观察到相邻两个数如果相等,那它们就固定了不会改变,以此把序列划分成若干段 \(010101010……\)
然后分类讨论一下即可。拓展到一般问题,可以枚举一个 \(x\) ,并且使 \(b_i=[x\le a_i]\) 。
序列固定下来的时间,就是所有 \(b\) 序列固定时间的 \(\max\) 。最终的序列,就是枚举到哪个 \(x\) 时, \(b\) 的终止态 \(c\) 对应位置为 \(1\)
这就做完了啊。开几个 \(set\) 维护一下,\(x\) 从小往大相当于把一些 \(b_i\) 赋为 \(1\) 。
P5469 [NOI2019] 机器人
早点做这个题俺是不是就进省队了.jpg 这套路真的能搬到今年省选D1T2啊。
首先有个显然的 dp 就是 \(f(i,j,k)\) 表示区间 \([i,j]\) 最大值为 \(k\) 的方案数。
然后发现 \(f(i,j)\) 是一个关于 \(k\) 的分段多项式。我们直接dp算一段点值,再拉插即可。
P7468 [NOI Online 2021 提高组] 愤怒的小 N
当年写这题 \(60\) 部分分写了一整场也没调出来,然后现在看这个题还是只会 \(60\) /cy
一个结论:\([0,2^k)\) 内,对于 \(p<k\) ,popcount为奇数的所有数的 \(p\) 次和 = popcount为偶数的所有数的 \(p\) 次和
就直接归纳,然后列成 \(\sum F(2i+1)-F(2i)\) 的形式,拆一拆即可。
CF1268D Invertation in Tournament
这题虽然有很多结论,但是都是基于竞赛图缩了点后是个链这件事。然后结论就是 \(n>6\) 时 \(ans\le 1\)
兰道定理:怎么快速判竞赛图强联通。
就是考虑 \(s_i\) 是所有点出度从小到大排序后的前缀和,首先一个竞赛图一定满足 \(C(k,2)\le s_i\)
然后如果存在 \(i<n\) 使 \(C(i,2)=s_i\) 那它就不是强联通啦 感觉这个挺显然的。
CF1712F Triameter
一句话题意: 一棵树,\(t_i\) 表示 \(i\) 到最近叶子距离节点的距离, \(q\) 次询问,给出 \(x\) 求 \(\min(t_i+t_j+x,dis(i,j))\) 的最大值。
\(q\le 10,n\le 1000000\)
挺有逼格啊。本人想了个二分答案的做法,计算 \(t_i\) 相同的点集的直径再二分答案双指针算,是 \(O(qn\log n)\) 的过不去 /kk
其实就是格局小了。我们考虑 \(dis(i,j)=d_i+d_j-2d_{lca(i,j)}\) 对吧。
然后进行一次 \(dfs\) ,合并子树信息,在 \(lca\) 处统计答案。
记 \(f_{i,j}\) 表示 \(i\) 子树内 \(t_x=j\) 的 \(d_x\) 最小值。
我们用类似长链剖分的方法,即可对 \(f\) 合并。发现合并的时候可以顺便更新答案。
具体的,\(f_{v,*}\) 向 \(f_{u,*}\) 合并,这边枚举了一个 \(f_{v,i}\) ,然后考虑当前答案 \(ans\) ,若枚举 \(f_{u,j}\) 一定有 \(j>ans-i-x\)
考虑 \(t\) 的性质。所以 \(f_{x,*}\) 是有单调性的。以 \(f_{v,i}+f_{u,ans+1-i-x}-2d_u\) 更新 \(ans\) 即可。
不仅得绕开思维的茧去想一些正统做法,还得以类似 \(manacher\) 的方法一点点更新答案,我实在想不到啊。