AT_abc245_f
\(dp_i\) 表示从点 \(i\) 走是否能走到环。(因为题目是简单图,所以有拓扑序)
AT_abc247_e
可以发现在固定左端点时,区间长度越大,最大值越大,最小值越小。
首先我们先把 \(a_i < y\) 或 \(a_i > x\) 的元素删掉,然后对剩下的元素分段。
对于第 \(i\) 段 \([l, r]\) 我们枚举左端点 \(i\),找到第一个合法的右端点 \(R\),那么答案为 \(\sum r - R + 1\)。
那么现在问题变成了如何判断一个区间合法,对于区间 \([i, j]\) 如果 \(a_i, a_{i + 1}, \dots a_j\) 之间是否存在元素 \(x\) 和 \(y\),计算一个前缀和即可。
AT_abc248_d
令 \(V_j\) 为 \(a_i = j\) 中所有的 \(j\),由于 \(a_i\) 最大为 \(2 \times 10^5\),所以可以使用 vector 加二分。
浙公网安备 33010602011771号