40.1
线段树
40.2
并查集
40.3
deque 维护每个时刻是否能左移的 01 序列,按题意模拟
41.1
单调栈
41.2
建图最大费用可行流
41.3
树剖 bitset 维护颜色,(2^c) 对每个人的集合,霍尔定理,答案对颜色交大小/人数取 min
41.4
dp,一句话说不完了,扔赵队博客就跑.jpg
42.1
树形dp
42.2
按关系分组,大小为偶贡献一定,大小为奇有1不定量,可以算出下界,到询问的部分补齐方案为组合数,lucas计算
42.3
询问差分成 x 和 y+1 消除上界影响,两种 dp 一个和值域有关一个和堆数有关,按根号为界分别处理把状态量压到 (nsqrt n),最后再合并
42.4
先消去头尾相同部分,然后即为在 ABCD 中取 AC,分类讨论中心在 A/C 中,翻转一倍后用 kmp 验证统计每个中心点的答案
43.1
树形dp
43.2
二分答案,验证一次可能仍有非法的地方,所以不断验证直到没有,还可以两个队列模拟dij,不会
43.3
先数位 dp,把 log 个区间提出来,把询问差分,再二分
43.4
将原问题转化为选两个相同值的考虑顺序且可重的方案数,首先有个 (O(n^3)) 的 dp,f[i][j][0/1/2] 为前 i 个数最大 j 选了 0/1/2 个要选的数的方案,发现这个转移以要选的数为分界之前和选什么数无关都一样,所以将相同的部分正着 dp 再将不同的部分反向 dp 即可