Day4

满足父亲在儿子前面被遍历的树的拓扑序计数,为 \(\dfrac{n!}{\prod size}\)

QOJ8047. DFS Order 4

我们可以来算有多少种 dfs 序可以还原到一颗合法的树。

如何判定一个序列合法?我们贪心的把点往一条父链上挂。如果 \(p_i>p_{i-1}\),那么可以挂在这条链末尾 \(p_{i-1}\) 的下方。如果 \(p_i>p_{i-1}\),我们可以在这条链上找到一个最深的祖先满足 \(p_k<p_i\),我们把 \(p_i\) 挂在 \(p_k\) 的父亲上(这相当于 dfs 的回溯过程),这样子既满足兄弟节点编号递增,也满足了儿子大于父亲。这样子排列就和树一一对应了。

这样子贪心连出来的树等价于以下限制:每个点编号小于父亲,每个点儿子编号

可以发现第 \(2-k\) 个兄弟节点和父亲间的约束没有用,可以通过 \(son_2>son_1>fa\) 来得到。直接删掉就行了。在兄弟之间连边。

\(d_i\) 表示 \(sz=i\) 的子树的贡献。\(f_{i,k}\) 表示 \(sz=i\),底下儿子深度到了 \(k\) 的方案数。

\(f_{i+j,k}\gets f_{i,k}\times d_j\times\dfrac{1}{i+j}\)
\(f_{i+j,k+1}\gets -d_j\times f_{i,k}\times\dfrac{1}{i+j}\)
\(f_{i+1,k-1}\gets f_{i,k}\times \times\dfrac{1}{i+}\)
\(d_{i+1}\gets f_{i,0}\)

AGC020F Arcs on a Circle

先断环为链,发现实数有点难做,所以我们用 \((n-1)!\) 来描述小数部分的顺序,这样子只要知道整数部分的关系就能只要能否拼接了。由于原本是环,所以不是 \(n!\)。然后再状压 dp 一下就行了。

AGC036F Square Constraints

对于 \(p_i\in[1,r_i]\) 的排列计数,我们可以将 \(r_i\) 排序,然后乘法原理那么总方案数是 \(\prod (r’_i-i+1)\)

我们画一下 \(P_i-i\) 可选区域的关系图。其实这本质是 \(p_i\in[l_i,r_i]\) 的排列计数。考虑将上述结论应用过来。为了消除左下角的影响,可以用容斥。

某计数题

对于每个 \(x,y\),求有多少个长度为 \(n\) 的排列,满足有 \(x\)\(p_i>i\),有 \(y\)\(p_i>p_{i+1}\)\(n\le 60\)

我们设 \(dp_{i,x,y,a}\),表示我们目前扫到了 \(i\),有 \(x\)\(p_i>i\),钦定了 \(y\)\(p_i>p_{i+1}\)

AGC039F Min Product Sum

\(dp_{i,x,y}\) 表示行为 \(x\),列为 \(y\)\(\le i\) 的贡献。

UNR#7 C. 璀璨宝石

首先一定是把所有宝石拿完然后开始买发展卡。最暴力的就是 \(O(2^n)\),枚举拿发展卡顺序。

如果我们确定了买发展卡的顺序,这样子就可以确定每种宝石需要的个数。
答案就是

\[\max(\lceil \dfrac{A+B+C+D+E}{2}\rceil,A,B,C,D,E)+n \]

对于第一个特殊性质,直接设 \(dp_{i,j}\) 表示桌面上为第

\(dp_{i,j,k,0/1,a/b/c/d/e}\) 表示当前桌面上的发展卡是第 \(i\) 张和第 \(j\) 张,剩下状态看下文。

设计一个状态 \((k,,0,a/b/c/d/e)\) 表示有 \(k\)\(a/b/c/d/e\) 未匹配,匹配个数。

设计一个状态 \((k,1,a/b/c/d/e)\) 表示当前有 \(k\) 个非 \(a/b/c/d/e\) 未匹配,匹配个数。

LGV

有一张图满足对于

QOJ4893. Imbalance

对于 \(k\le 20\),可以状压。
对于 \(k>20\),我们可以对 \(0\)\(1\) 个数作 \(+-1\) 前缀和,画成折线图。

如果画成全局折线图不方便研究,可以画成周期为 \(k\) 的折线图,发现路径不相交,于是变成 LGV。

集合幂级数

三进制mex卷积

\(3^n\) 的序列。\(\{x_0,x_1..x_{n-1}\}\)\(\{y_0,y_1..y_{n-1}\}\) 卷积得到 \(\{z_0,z_1..z_n\}\),其中 \(z_i=\operatorname{mex}(x_i,y_i)\)\(n\le 11\)

\(c_0=a_1b_1+a_1b_2+a_2b_1+a_2b_2\)
\(c_1=a_0b_0+a_0b_2+a_2b_0\)
\(c_2=(a_0+a_1+a_2)(b_0+b_1+b_2)-c_0-c_2\)
\(a_0,a_1,a_2\to a_1+a_2,a_0+a_2,a_2+a_0+a_1+a_2\)
这是 \(3^n\to 4^n\)。令上述分别为 \(A,B,C,D\)
\(A,B,C,D\to A,B-C,D-A-B-C\)

子集卷积

不相交集合的并,那么 \(j|k=i \to \lvert j\rvert+\lvert k\rvert=\lvert i\rvert\)
\(A=A_0+A_1+...+A_n\)\(A_i\) 包含所有 \(\lvert S\rvert=i\)\(A_s\)

\(A*B=\sum\limits_{i,j}(A_i\times B_j)\),只保留所有 \(\lvert S\rvert =\lvert i\rvert+\lvert j\rvert\) 的部分。

QOJ5089. 环覆盖

生成函数

题目

给定一个字符串 \(s\) 和字符集 \(r\),求有多少个长度为 \(n\) 的字符串不包含 \(s\) 作为子串。\(n\le 2\times 10^5\)

考虑钦定 \(t\) 的若干部分为 \(s\)。这几个部分可以相交,相交长度最长为 border,记为 \(k\)。令 \(c(x)=\sum\limits_{i=1}^kx^{m-ci}\)

\(SEQ(rx-x^m\times\dfrac{1}{1+c(x)})\)

通用测评号

假设我们最后一次操作了第一个位置的使他 \(b-1\to b\)。然后钦定 \(k\)\(\ge a\)
操作 \(n\) 次,\(\dfrac{n!}{\prod x_i!}\)
\(\dfrac{x^{b-1}}{(b-1)!}(e^x-\sum\limits_{i=0}^{a-1}\dfrac{x^i}{i!})^k(\sum\limits_{i=b}^{a-1}\dfrac{x^i}{i!})\)

\(\sum\limits_{m}\dfrac{m!}{n^m}[x^m]F_k(x)\),将 \(n^m\) 放进去就是 \(\dfrac{x}{n}\)\([x^m]e^{ax/n}\times x^b\)

\[[x^m]\dfrac{1}{(1-ax/n)^{b+1}}=(\dfrac{1}{}) \]

方格染色

对于直线多项式,线段分块多项式。

节日装饰

相对误差不超过 \(0.5\),等价于答案在 \([k,2k]\) 中时,我们直接回答 \(k\)

我们把区间分成
我们构造一个差卷积,\(c_i=\sum\limits_{j-k=i}a_jb_k\)

只要让 \(x_u\)\(x_v\) 贡献 \(c_uc_v(c_u-c_v)^2\)

posted @ 2024-08-02 11:14  Mirasycle  阅读(23)  评论(0编辑  收藏  举报