是啊,怎么做
CF1240C
问题转化为每一个点至多选k条边,把他们贡献入答案里,然后dp贪心即可
P2150
寿司晚宴做法
30tps
状压选择的质因数集合,设状态为 \(f_{i,s,t}\), 为选择 [1, i] 中, Alice 选择的质因数集合 S, Bob 选择的质因数集合为 T
时间为 \(O(n 2^{20})\)
100tps
因为大质因数很少,最多出现 1 次,
按大质因数分组,每组背包,时间为\(O(n\times2^{16})\)
这个做法又称根号质因数状压
CF2252E
因为:
所以
考虑 dp, 设 \(dp_{w, x, l_1, l_2, l, g}\) 为考虑 \(w\) 位, \(a \& c = x\), \(a, c\) 是否卡上上线 \((a -> l_1) , (c -> l_2)\),
\(a\) 前面是否全是 \(0\) , 是否 \(a = c\)
时间为\(O(\log)\)
CF893E
提供一个非dp做法
符号只需在最后乘以 \(2^{y-1}\) 即可。
考虑一个因数 \(p_i^{a_i}\) ,则他的贡献为 \({y+a_i-1 \choose y-1}\) , 时间为 \(O(\sqrt{x})\)
P7913
维护空闲的廊桥,每次让编号最小的上去抗,计算每一廊桥的航班数,最后枚举国内区的个数,时间线性
P7915
T3比T2简单吗
维护左右端点的双端队列,每次用四次讨论即可,时间复杂度为线性
P4262
正着做一遍,反着做一遍,然后拼起来,时间复杂度为 \(O(nm2^m)\)
Gym105161J
选中的区域不能有 3 格子拐弯的样子,轮廓线 dp
CF2062C
怎么不读题
读题,注意到差分后交换就是给整体有一个负号,模拟即可,时间为 \(O(n^2)\)
不知道什么题目
题意:
有一个点数为 n 的树,有 q 次查询,每次给出一条路径 [u, v] , 选择一个子图使得包含这个路径上一点,求有多少子图
用 \(f_i\) 为在 x 子树内,包含 x 的方案数
\(g_i\) 子图选 x ,不包含子树节点方案数
其中 \(f_i\) 可以直接写出来, \(g_i\) 用换根维护。时间为 \(O(n) - O(1)\)
CF2013C
交互
先用一个空串向后拓展,如果两个都不行,则扩展到头了,则往前拓展,注意到开头不是 1 就是 0 ,那么能省下一个询问,查询复杂度严格为 2n
CF1667B
dp
设 \(dp_{i}\) 为前 i 个的划分最大值,\(s_i\) 为前缀和,则转移为:
时间为 \(O(n^2)\) ,考虑优化。
把 \(s_i\) 离散化,然后放到数轴上,单点修改,前缀查询,用 fenwicktree 维护
CF1427C
dp
设 \(dp_i\) 为前 i 个明星能拍到的最大值,发现最优解只有 \(4 \times r\) 中,时间复杂度为 \(O(nr)\)
CF2044H
维护前缀和即可
CF1772
推式子可知:
对于每一个 \(a_i,a_{i+1}\) 都做一遍,最后判一下上下界即可。
CF1842C
设 \(dp_i\) 为前 i 个数最多能删多少数,则
用桶 / map 维护,时间复杂度为 \(O(n\log n) or O(n)?\) ,反正能过
P1390
又因为
枚举 d , 后面用整除分块解决,时间复杂度为 \(O(n\sqrt{n})\)
P7359
首先用倍增将树变成序列,然后用定义状态 $ f_{i,0/1}$ 。
\(f_{i,0}\) 表示在 u 节点没有造船
\(f_{i,1}\) 表示在 u 节点有船
发现可以用矩阵乘法的变化优化,然后就过了
CF1349A
原式可化为:
对于每一个 i ,预处理好后缀 gcd, 然后对于每一个 i 都计算一下,时间线性
CF1089F
考虑对于枚举因数,然后进行线性组合,得到 n-1 , 时间为 \(O(k)\)
CF2236F
F1
得出 \(p_i\) 两两互质,那么从每一个 \(a_i\) 中选取所有 \(a_j i \ne j\) 没有的质因数,那么全部累积,时间复杂度为 \(O(n\sqrt{V})\)
F2
不会,严肃学习 Lzn 老师的文章!!!
浙公网安备 33010602011771号