ARC151+
ARC153F Tri-Colored Paths
参考这里
ARC154E Reverse and Inversion
考虑\(i\)的系数,即\([1,i)\)中\(>Q_{i}\)的数个数\(-(i,n]\)中\(<Q_{i}\)的数个数
设前者为\(x\),则后者即\((n-i)-(n-Q_{i}-x)=Q_{i}+x-i\),进而原式为\(\sum_{i=1}^{n}i(i-Q_{i})\)
若\(Q_{i}\)被操作区间覆盖,则使其到位置\(j\)的区间数为\(\min\{i,n-i+1,j,n-j+1\}\)
注意到该式在\(j\)和\(n-j+1\)处值相同,进而\(E(j)=\frac{n+1}{2}\),即可以此计算
时间复杂度为\(O(n\log m)\)
ARC154F Dice Game
记\(a_{k}\)为随机次数\(>k\)的概率,容斥可得\(a_{k}=\sum_{i=1}^{n}(-1)^{i-1}{n\choose i}(\frac{n-i}{n})^{k}\),进而答案为
记\(S_{m}=\sum_{k\ge 0}a_{k}k^{m}\),则求出\(S_{m}\)后NTT即可
分治NTT求出\(\sum_{i=1}^{n}\frac{(-1)^{i-1}{n\choose i}}{1-\frac{n-i}{n}x}=\frac{P(x)}{Q(x)}\),则\(S_{m}=m![x^{m}]\frac{P(e^{x})}{Q(e^{x})}\)
对于\(A(x)=\sum_{i=0}^{n}a_{i}x^{i}\),有
再次分治NTT即可,时间复杂度为\(O(n\log^{2}n+m\log m)\)
ARC155E Split and Square
记\(S\)中元素构成的线性基为\(e_{1},e_{2},...,e_{m}\),则\(S=\{0\}\iff m=0\)
对于\(x\in S\),记\(x\)的分解\(P(x)\subseteq [1,m]\)满足\(\bigoplus_{i\in P(x)}e_{i}=x\)
取\(\begin{cases}T_{1}=\{x\mid 1\in P(x)\}\\T_{2}=\{x\mid 1\not\in P(x)\}\end{cases}\),则\(f(T_{1})\cup f(T_{2})\)中\(\forall i\in [3,m],e_{2}\oplus e_{i}\)线性无关
同时,对于\(x,y\in T_{1}/T_{2}\),总有\(1\not\in P(x)\oplus P(y)\),进而仅\(2\not\mid |P(x)\oplus P(y)|\)时线性无关
这等价于\(|P(x)|\not\equiv |P(y)|\pmod 2\),结合\(|P(e_{1/2})|=1\),也即\(\exists x\in S,2\mid |P(x)|\)
这样的数至多新增一个,即\(f(T_{1})\cup f(T_{2})\)的线性基大小为\(m-1-[\forall x\in S,2\not\mid |P(x)|]\)
同时,由于首轮操作后总有\(|P(0)|=0\),因此后面的条件仅需对初始的\(S\)判定
事实上,这也取到了\(f(T_{1})\cup f(T_{2})\)线性基大小的下界:
不妨假设\(\begin{cases}\forall i\in [1,k],e_{i}\in T_{1}\\\forall i\in (k,m],e_{i}\in T_{2}\end{cases}\),则\(f(T_{1})\cup f(T_{2})\)中\(\begin{cases}\forall i\in [2,k],e_{1}\oplus e_{i}\\\forall i\in [k+2,m],e_{k+1}\oplus e_{i}\end{cases}\)线性无关
同时,若\(\exists x\in S,2\mid |P(x)|\),不妨假设\(x\in T_{1}\),则\(x\oplus e_{1}\)也线性无关
综上,最终答案为\(m-[\forall x\in S,2\not\mid |P(x)|]\),用bitset实现即可,时间复杂度为\(O(\frac{nm^{2}}{\omega})\)
ARC155F Directable as Desired
显然若存在定向方式则唯一,不妨对定向后的图计数
任选一点为根,并枚举内向边(从儿子指向父亲)的起点集合\(S\)
-
内向边:构成了恰以\(S\)外的所有点为根的内向树森林
将\(S\)外的点合并,并枚举其度数,结合purfer序列,方案数即
\[\sum_{i=0}^{|S|}(n-|S|)^{i}{|S|-1\choose i-1}|S|^{|S|-i}=(n-|S|)n^{|S|-1} \] -
外向边:将前者的每棵内向树缩点后,构成了一棵外向树
新建一个点与根节点连边,则每个点的度数为\(\sum_{i\in T}(d_{i}-[i\in S])+1\)(\(T\)为该内向树点集)
同时,内部实际连边方案数为\({\sum_{i\in T}(d_{i}-[i\in S])\choose \forall i\in T,d_{i}-[i\in S]}\),分子在purfer序列中抵消,方案数即\({n-|S|-1\choose \forall i\in [1,n],d_{i}-[i\in S]}\)
另外,由于实际上并不存在根节点,最终答案还需要除以\(n\),即
分治NTT求出\(\prod_{i=1}^{n}(1+d_{i}x)\)即可,时间复杂度为\(O(n\log^{2}n)\)
ARC156F Make Same Set
参考这里
ARC159F Good Division
一个序列是好的当且仅当长度为偶数且不存在绝对众数
记\(f_{i}\)表示前\(2i\)个数的划分方式,转移即\(f_{i}=\sum_{0\le j<i,(2j,2i]不存在绝对众数}f_{j}\)
枚举绝对众数\(x\),记\(S_{i}=\frac{1}{2}(\sum_{j=1}^{2i}[a_{j}=x]-[a_{j}\ne x])\),则\(f_{i}=\sum_{j=0}^{i-1}f_{j}-\sum_{x=0}^{2n}\sum_{0\le j<i,S_{j}<S_{i}}f_{j}\)
- 若\(S_{i}\)为前缀最小值,则后式为\(0\)
- 否则,取\(k\)为上一个满足\(S_{k}=S_{i}\)的位置,则后式即在\(k\)的基础上\(+0/\sum_{j=k+1}^{i-1}f_{j}\)
由于\([S_{n},0]\)中的数均为前缀最小值,进而非前缀最小值至多\(\sum_{i=1}^{2n}[a_{i}=x]\)个,暴力维护即可
视实现方式,时间复杂度为\(O(n)\)或\(O(n\log n)\)