向 $CQOI\ 2018$ 致敬?
甲苯先生的字符串
- 矩阵快速幂.
- 板子题.处理相邻两个字符时改一下转移矩阵里的系数就好了.
1 |
|
甲苯先生的滚榜
- 平衡树.
- 又是板子题.随便上个啥平衡树写一下插入,删除,查询排名.
唱、跳、rap 和篮球
顶风作案,律师函警告.
- 容斥原理+ $dp$ 计数.
- 为了方便,称题目中所说的一组同学为 位置 $k$ 在讨论蔡徐坤 ,要求出没有位置在讨论蔡徐坤的方案数.
- 显然可以容斥原理搞一搞,只需对每个 $i$ 求出钦定 $i$ 个位置在讨论蔡徐坤,其它不涉及的位置乱选的方案数.
- 其它位置乱选方案数就是有重复元素的排列数,但每个元素使用次数有限制.可以构造多项式 $(x+y+z+w)^{tot}$ , $tot=n-4i$ ,将次数符合要求的对应系数求和.
- 二项式定理套两次,多项式展开为
$$
\begin{aligned}
(x+y+z+w)^{tot}&=\sum C_{tot}^j (x+y)^j(z+w)^{tot-j}\\
&=\sum C_{tot}^j(\sum C_j^p x^p y^{j-p})(\sum C_{tot-j}^q z^q w^{tot-j-q})
\end{aligned}
$$ - 预处理组合数前缀和,把 $x,y,z,w$ 系数都符合限制的那一段取出来计算即可.
- 考虑怎么求钦定 $i$ 个位置在讨论蔡徐坤的方案数.
- 抽象一下就是选出 $i$ 个位置,相邻两个位置之差至少为 $4$ .需要求出每个 $i$ 的方案数.
- 可以设计一个三维的 $dp$ ,状态需要记录考虑的数目,选的数目,最后一个选的位置.
- 注意到最后一个选的位置其实只有四种情况有区别,设 $f(j,i,0/1/2/3)$ 表示已经考虑了前 $j$ 个位置,选了 $i$ 个位置,最后选的位置分别是 $j,j-1,j-2,\leq j-3$ 时的方案数.将 $f(n-3,i,0/1/2/3)$ 求出即可.
- 时间复杂度 $O(n^2)$ .
1 |
|
甲苯先生与线段树
- 位运算,数位 $dp$ .
- 大概是个原题.
甲苯先生和大中锋的字符串
- $SAM$ + 差分.
- 建出 $SAM$ 后在 $parent$ 树上递推 $right$ 集合的大小,若其为 $k$ ,则对 $[Minlen,Maxlen]$ 内的计数器都加 $1$ .
- 最后询问一次计数器最大值.可以修改差分,最后求前缀和,就可以做到 $O(n)$ 了.
1 |
|
读入格式很诡异.用快读读 $k$ 会炸两个点,原因不明.
大中锋的游乐场
- 最短路.
- 记 $dis[i][j]$ 表示从起点出发到节点 $i$ ,经过的 $1$ 减去经过的 $2$ 的数目为 $j$ 时的最短路长度.
- 用 $Dijkstra$ 进行转移即可.