【A】数学

https://vjudge.net/contest/774379#overview

P4351 [CERC2015] Frightful Formula

容易找到每个格子的贡献,为 \(\binom{2n-i-j}{n-i}a^{n-j}b^{n-i}\)
那么固定了的第一行第一列的贡献可以计算,注意第一步一定是向下/右。
对于其他的位置,都是 \(c\)。即我们需要求:\(\sum_{i=0}^{n-2}\sum_{j=0}^{n-2}\binom{i+j}{i}a^ib^j\)

\(m=n-2\)
考虑按照 \(i+j\) 进行递推,由于这是个正方形求和,那么我们从上一条对角线分别向下/右走一步,然后减去走出去的位置即可。即 \(f_{i+1}=(a+b)f_i-\binom{i}{m}a^{i-m}b^{m+1}-\binom{i}{m}b^{i-m}a^{m+1}\)

AT_arc139_d [ARC139D] Priority Queue 2

考虑计算 \(\sum_{lim}\sum_{i} [lim\le a_i]\)
\(c=\sum_{i} [lim\le a_i]\)
插入:

  • \(v\ge lim\)\(c\) 加一,方案数 \(m-lim+1\)
  • \(v<lim\)\(c\) 不变,方案数 \(lim-1\)
    删除:
  • \(c\ge n-x+2\)\(c\) 减一。
  • \(c<n-x+2\)\(c\) 不变。

那么枚举到达 n-x+1 的时刻即可计算。

CF1097G Vladislav and a Great Legend

考虑组合意义,等于说虚树内选出 k 条边。那么容易有 \(O(nk^2)\) dp。
转移大概是:\(f_{u}=((2\prod_{v\in \mathsf{son}} (f_{v}+1))-1)e^x\)
考虑做一个换元,设 \(t=e^{x}-1\),那么换元后的转移是 \(f_{u}=((2\prod_{v\in \mathsf{son}} (f_{v}+1))-1)(t+1)\),卷积可以背包处理。
最后还回去即可。答案即为 \([x^k/k!]\sum_{u}((2\prod_{v\in \mathsf{son}}(f_v+1))-\sum_{v\in\mathsf{son}}f_v-2)\)

往日之影

考虑设 \(n\) 元 GF,有 \([\prod x_i^{4k_i+c_i}]\prod (1+x_ux_v)\)
\([\prod x_i^{4k_i}]\prod x_i^{4-c_i}\prod (1+x_ux_v)\)
考虑对于每个 \(x_i\) 分别代入 \(1,-1,i,-i\) 即可求得上式。

注意到 \(1,-1\) 不能同时出现,\(i\) 至多 1 个,\(-i\) 至多 1 个。
可以计算。

AT_abc297_h [ABC297Ex] Diff Adjacent

考虑设 2 元 GF,\(x\) 元表示和,\(y\) 元表示长度,方案数 GF 为 \([x^n]\frac{1}{1-\sum_{i}\frac{x^iy}{1+x^iy}}\)
答案即为对 \(y\) 维求导后带入 \(y=1\) 求和。
推导得到 \([x^n]\frac{\sum_{i}\frac{x^i}{(1+x^iy)^2}}{(1-\sum_{i}\frac{x^iy}{1+x^iy})^2}\),复杂度 \(O(n\log n)\) 计算。

CF623E Transforming Sequence

暴力 dp,考虑设计 \(f_{i,\operatorname{pop}(b_i)}\),有转移 \(f_{i,y}=\sum_{x=1}^y f_{i-1,x}2^x\binom{k-x}{k-y}\)
转移和 \(i\) 没有关系,我们考虑倍增加速。
\(i\) 的定义改为长度,那么 \(f_{i}\)\(f_{j}\) 的合并是:\(f_{i+j,x}=\sum_{p+q=x}f_{i,p}f_{j,q}2^{jp}\binom{k-p}{k-x}/\binom{k}{q}\),可以卷积计算。
要 MTT 真的谢特了。

AT_arc140_f [ARC140F] ABS Permutation (Count ver.)

CF1553I Stairs

首先划分出这些段,段的方向有三种 \(\uparrow,\downarrow,1\)
考虑容斥去解决这个不能连成一个段的问题,那么可以 \(O(n^2)\) dp。
可以改成分治 dp,每次合并 \(f_{[l,mid]},f_{[mid+1,r]}\),那么我们可能关注首尾两个段的方向,进行卷积转移即可。

CF1967E2 Again Counting Arrays (Hard Version)

考虑对于某个 \(a\)\(b\) 的策略一定是能往上走就往上走。
那么考虑计算不合法的方案数,
其中:要求经过 \(b_i=-1\),不能经过 \(b_i=m\),往上走方案数为 \(m-1\),往下走方案数为 \(1\)。经过 \(b_i=-1\) 以后可以随意走。
考虑枚举终点 \(x\) 计算路径方案数。令 \(f(A_{1\sim k})\) 表示依次经过 \(b=A_i\) 的方案数。

  • \(x\le -1\):显然一定会经过 \(b_i=-1\),但是需要减去 \(f(m)\),再加上 \(f(-1,m)\),再减去 \(f(m,-1,m)\),等等。
  • \(x>-1\):从第一次经过 -1 的地方翻折下来变成 \(x\le -1\) 的情况。

对于 \(x\le -1\),他就是加上终点为 \(x-k(2m+2)\) 的方案,再减去 \(2m-x+k(2m+2)\) 的方案。其中 \(k\ge 0\)。也就是求 \(\sum \binom{n}{k(m+1)+b}\) 这种东西。容易预处理出每个同余等价类中的前缀和即可求出答案。

posted @ 2025-12-13 08:24  TallBanana  阅读(12)  评论(0)    收藏  举报