总算有时间来补 NOIp 了。
T1
题意:给定一个 C
和 F
图案,对 998244353 取模。
C
和 F
是类似的,这里我们只讨论 F
的做法。
注意到考虑枚举极长的竖段,加上两段向右的 1 连续段。可以先求出每个点向右最长的 1 连续段长度,然后在极长连续段上枚举下面横线的位置,动态维护上面所有向右 1 连续段长度和即可
枚举极长竖段的总复杂度相当于枚举每一个点,总复杂度就是
T2
到这里看。
T3
题意:给出一个
只割一条边,那么说明在一个强连通分量里面的是不会不连通的,那么缩点就一定是必要的。
无向图缩点过后会变成一棵树,现在每个点会有一个点权,如果选择他会乘上
剩下就是一个树形 DP 的过程了,方法比较多,就说一下我的 DP 办法。记
我们计算的时候假设
具体实现可以到 https://loj.ac/s/1659416 看。
T4
题意:给定两个长度为
最值分治之类的可以过掉大部分随机的数据点,但显然正解不是这个。
考虑直接扫描线 + 线段树大力做。现在我们对左端点扫描线,对右端点记录历史和,这样的话查询的时候只要在对应左端点的时间查询区间内部的历史和即可。
单调栈可以动态维护每个节点的
- 区间
加一个数 - 区间
加一个数 - 区间内部每个位置
加上当前位置的
改题的时候比较偷懒,就使用的是矩阵维护,具体来说,需要维护区间长度,区间
Related Issues not found
Please contact @mydcwfy to initialize the comment