Akane Weekly #9 NOIP 十连测 (8)
Akane Weekly #9
A.测测你的签到水平
每次相当于区间经过次数加一,差分维护,贪心地取最大值即可。
B.测测你的计数水平
先枚举第一个需要的三种方案,然后对剩下的区间做 DP,枚举每一条线的方案,最多只有两种可能。
DP1 维护最多可以选多少条线,DP2 表示此时的方案数,对于每一条线枚举选不选即可。
时间复杂度 \(O(n)\) 。
C.测测你的优化水平
测的是优化水平,但难想的是状态。
考虑一个性质,把所有点按照 \(x\) 排序,假设前面的依靠 \(x\) 选的 \(y\) 坐标最大值为 \(j\) ,那么如果当前点 \(y\) 坐标小于 \(j\) ,则当前点只能按照 \(x\) 选择了,因为如果按照 \(y\) 选,前面有更大的 \(y\) 还没有选,如果先选那个 \(x\) ,因为当前点 \(x\) 更大,也选不了。
因此题目限制变成了一个逆序对的限制,我们令 \(dp_{i,j}\) 表示选到第 \(i\) 个,前面的按照 \(x\) 选的的 \(y\) 坐标坐标小于 \(j\) 的方案数,枚举转移即可,时间复杂度 \(O(n^2)\) ,50 分。
优化非常显然,对于 \(j>y_i\) 只能用选 \(x\) 一种转移,相当于 \(dp_{i,j}\leftarrow dp_{i-1,j}+x_i\) ,即区间加。
对于 \(j<y_i\) 则只能用 \(y\) 一种转移,相当于 \(dp_{i,j}\leftarrow dp_{i-1,j}+y_i\) ,也是区间加。
对于 \(j=y_i\) 则两种转移都可以。
第一种是按照 \(y\) 转移,和 \(j<y_i\) 一类一样。
第二种是按照 \(x\) 转移,此时,我们要从所有 \(p\in[1,y_i] \min{dp_{i,p}} +x_i\) 转移过来,因为前面的只需要小于 \(y_i\) 都满足,即区间 \(\min\) ,单点覆盖。
查询答案是一个区间 \(\min\) 。
我们使用线段树维护如上过程,时间复杂度 \(O(n \log n)\) 。
D.测测你的网络流水平
- 50 pts
枚举源点和汇点,暴力。
- 70 pts
相当于多源点最小割问题,用最小割树,分治来做。
洛谷模板:P4897 【模板】最小割树(Gomory-Hu Tree) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
- 100pts
还不会qwq

浙公网安备 33010602011771号