是啊,怎么做

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

因为:

\[x + y = (x \oplus y) + 2 \times (x \& y) \\ x \oplus x = 0 \]

所以

\[a \oplus c = b = 2 (a+c) = 2(a \oplus c) + 4 \times (a \& c) \\ (a \oplus c) = 2 \times (a \& c) \]

考虑 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\) 为前缀和,则转移为:

\[\begin{array}{l} dp_i = \max \left\{\begin{matrix} dp_j+(i-j)\quad s_i>s_j \\ dp_j\quad s_i = s_j \\ dp_j+(j-i)\quad s_i < s_j \\ \end{matrix}\right. \end{array} \]

时间为 \(O(n^2)\) ,考虑优化。

\(s_i\) 离散化,然后放到数轴上,单点修改,前缀查询,用 fenwicktree 维护

CF1427C

dp

\(dp_i\) 为前 i 个明星能拍到的最大值,发现最优解只有 \(4 \times r\) 中,时间复杂度为 \(O(nr)\)

CF2044H

\[LHS = \\ \sum_{i=x_1}^{x_2} \sum_{j=y_1}^{y_2} M_{i,j} \times [(i-x_1)\times(y_2-y_1+1)+(j-y_1+1)] = \\ \sum_{i=x_1}^{x_2} \sum_{j=y_1}^{y_2}M_{i,j} \times [i\times(y_2-y_1+1)]-M_{i,j}\times[x_1\times(y_2-y_1+1)]+M_{i,j}\times[j-y_1+1] = \\ [(y_1-y_2-1)x_1-y_1+1]\sum_{i=x_1}^{x_2} \sum_{j=y_1}^{y_2}M_{i,j}+(y_2-y_1+1)\sum_{i=x_1}^{x_2}\sum_{j=y_1}^{y_2}iM_{i,j} + \sum_{i=x_1}^{x_2}\sum_{i=y_1}^{y_2}jM_{i,j} \]

维护前缀和即可

CF1772

推式子可知:

\[a_i>a_{i+1}\quad x \ge \frac{a_i+a_{i+1}}{2} \\ a_i=a_{i+1}\quad x \in \mathbb{R} \\ a_i<a_{i+1}\quad x \le \frac{a_i+a_{i+1}}{2} \\ \]

对于每一个 \(a_i,a_{i+1}\) 都做一遍,最后判一下上下界即可。

CF1842C

\(dp_i\) 为前 i 个数最多能删多少数,则

\[dp_i = \max_{a_j=a_i}(dp_{j-1}+i-j+1, dp_{i-1}) \]

用桶 / map 维护,时间复杂度为 \(O(n\log n) or O(n)?\) ,反正能过

P1390

\[Ans = (\sum_{i=1}^n\sum_{j=1}^n(i,j)-\frac{n(n+1)}{2})\div 2 \]

又因为

\[\sum_{i=1}^n\sum_{j=1}^n (i,j)\\ =\sum_{i=1}^n\sum_{j=1}^n \sum_{d|i,d|j}d[d=(i,j)]\\ =\sum_{d=1}^nd\sum_{i=1}^{n/d}\sum_{j=1}^{n/d}[(i,j)=1]\\ =\sum_{d=1}^nd\sum_{x=1}^{n/d}\mu(x)\left \lfloor \frac{n}{dx} \right \rfloor \left \lfloor \frac{n}{dx} \right \rfloor \]

枚举 d , 后面用整除分块解决,时间复杂度为 \(O(n\sqrt{n})\)

P7359

首先用倍增将树变成序列,然后用定义状态 $ f_{i,0/1}$ 。

\(f_{i,0}\) 表示在 u 节点没有造船
\(f_{i,1}\) 表示在 u 节点有船

发现可以用矩阵乘法的变化优化,然后就过了

CF1349A

原式可化为:

\[\frac{\gcd{a_i \times a_j | i < j}}{\gcd(a_1, a_2, a_3, \dots, a_n)} \]

对于每一个 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 老师的文章!!!

点击这个

posted on 2026-08-15 15:27  秋天的宇宙  阅读(7)  评论(1)    收藏  举报

导航