复健。(1~10,OI)

Day 1

模拟赛3 C

\(\operatorname{id}_{j,k}\) 为第 \(j\) 个属性 \(\ge k\) 的列的类别(即第 \(i\) 个村民有无此属性),\(s_i\) 为第 \(i\) 个村民的属性。

模拟赛3 D

首先设 \(F_u\) 为以 \(u\) 为根节点的拓扑序的数量,递推式为 \(f_u=(s_u-1)!\prod\limits_{(u,v)\in E}\dfrac{f_v}{s_v}\),所以每个点会有 \(\dfrac{(s_v-1)!}{s_v!}=\dfrac{1}{s_v}\) 的贡献,所以 \(F_u=\dfrac{s_u!}{\prod\limits_{v\in \operatorname{Subtree}(u)}s_v}\)

设状态 \(f_{u,i}\)\(u\) 为拓扑序 \(i\) 时的方案数,不考虑子树。从 \(f_{u,j}\)\(f_{v,i}\) 转移,考虑应该让哪些点排在 \(v\) 的前面,将 \(u\) 子树内,\(v\) 子树外的 \(s_u-s_v-1\) 个点放入已经处理并且未在 \(u\) 到根的链上的 \(n-s_u-j+1\) 个点,方程即为:

\[f_{v,i}=\sum\limits_{j=1}^{i-1}f_{u,j}\binom{n-s_v-j}{s_u-s_v-1}\dfrac{(s_u-s_v)!}{\prod\limits_{w\in\operatorname{Subtree}(u)-\operatorname{Subtree}(v)}s_w} \]

答案即为:

\[\sum\limits_{i=1}^nb_if_{u,i}\binom{n-i}{s_u-1}\dfrac{s_u!}{\prod\limits_u s_u} \]

Day 2

今天突然发现把扫描线忘了,赶紧写写。

难点在于如何维护,实际上在线段树上只要维护每个区间被完整覆盖的次数 \(w\) 和总宽度 \(v\) 就可以了。

Day 3

「联合省选 2025」推箱子

用线段树维护每个箱子的位置,这里只讨论从左向右推,反向同理。当要推动一个箱子 \(i\)\(b_i\) 时,位于 \([a_i,b_i]\) 的箱子都会被推动。被推动的箱子还会继续推动别的箱子。当 \(b_i-i+j-1< a_j\),即 \(a_j-j> b_i-i-1\) 时停下来。

需要注意的细节是已经到达位置的箱子不能再推动了。

Day 4

注意 vector::size 的返回值是无符号整数!!!被这个坑惨了

[POI 2013] USU-Take-out

一个一个字符往栈里压,遇到栈底有 \(k\)b\(1\)c 的情况就弹出即可。

Day 5

摸鱼了。

Day 6

「CMOI R0」Parallel Universe Shifter / Lattice Circle

感觉有点意思的一个题。

首先我们只需计算 \(\frac{1}{4}\) 个圆的点的个数即可,答案即为 \(4\sum\limits_{i=1}^n\left\lfloor\sqrt{n^2-i^2}\right\rfloor+2n-1\),然后我不会了。

Day 7

摸鱼了。

posted @ 2025-08-20 07:33  01bit  阅读(23)  评论(0)    收藏  举报