简单数数

AGC013D

最大的问题是初始状态你不知道,怎么样数两两不平移的折线?

考虑只数 刚好碰到 过边界的折线,就做完了。

这提示我们找一个代表元。

不定方程解计数

先钦定 \(f_{i}\) 表示至少有 \(i\) 个盒子放了 \(k\) 个球,然后找 \(i+1\) 个盒子先放 \(k+1\) 个球,剩下的随便放插板技术,最后在对 \(f_{i}\) 做容斥求出答案.

CCPC 秦皇岛

\(0\) 看成分隔符即可。

CF1895F

首先容斥一下答案为至少有一个小于等于 \(x+k-1\)\(\min(a_i) \leq x+k-1\),减去所有的都小于 \(x-1\)\(\max(a_i) \leq x-1\),考虑最小值有 \(x+k-1\) 种,确定了此时的取值以及差分数组就能还原原数组,又因为钦定的是最小值所以保证了非负。

AGC013E

等价于一个序列分成若干段,有的地方不能分,每个段放两个不同的球,求方案数。

考虑 \(f_{i,0/1/2}\) 表示考虑前 \(i\) 个且结尾这一段放了多少个,然后是不是要新开一段去讨论,断点特殊转移,剩下的预处理转移矩阵去倍增。

trick:几次方等价于放几个球。

CSA

等价于每次删一个叶子,求删完的方案数。

考虑换根,等价于是从根节点开始不断向下扩展。

考虑按加入时间给每个点给标号,定义 \(f_{x}\) 为子树答案,然后合并答案是子树内相对答案不变,然后按顺序选出一些位置放,直接组合再换根即可。

ARC101E

既然要所有路径都要被染色,改成钦定一些边不会被染色,相当于在若干个连通块中染色,写出我们的贡献:

\(\sum_{t \in E} f(t) \times (-1)^{|S|-|T|}\)

\(f(t)\) 表示 \(t\) 中的集合没有被染色的方案数。

考虑带系数 dp。

设计状态 \(dp_{x}\) 表示 \(x\) 的子树中 \(\sum_{t \in E_{u}} f(t) \times (-1)^{|S|-|T|}\) 这里 \(E_{u}\) 代表其子树内的边集。

考虑把 \(y\) 合并到 \(x\) 上,考虑边 \((x,y)\) 是否要断:

  1. 如果选的话,\(t\) 集合大小加 \(1\),原来的值整体乘上 \(-1\)

  2. 不选的话,原来的值不变,但是需要乘上 \(x,y\) 连通块内还连上的连通块之积的贡献,考虑加一维 \(dp_{x,i}\) 表示子树 \(x\) 且连着的连通块大小为 \(i\)

需要计数连通块内自己选的方案。

LIS

dp of dp 可是我不会捏。

CF1909F2

放到平面上。

然后我再想想捏。

AT_agc001_e

考虑放到网格上转化为不降路径数 \(O(V^2)\) 递推,最后减去 \(i=j\) 然后除以二即可。

折线计数

\((0,0)\)\((x,y)\) 网格图上的不下降路径计数。要求不能碰到直线 \(A,B\)

考虑假若碰到第一条线就写下 \(A\),碰到第二条线就写下 \(B\),那么得到一个 \(AB\) 序列,将相同的颜色段合并,得到一个形如 \(ABABABAB...\)\(BABABABA...\) 的段。

考虑把终点按第一条线翻折得到新的终点 \(P\),从 \((0,0)\)\(P\) 的不下降路径就等价于所有形如 \(A\) 的路径,再对第二条直线作翻折得到点 \(P_1\),那么到 \(P_1\) 的路径就等价于所有形如 \(AB\) 的路径,类推下去可以得到所以以 \(A\) 开头的路径,以 \(B\) 开头的路径计数类似,最后用总数将其减去即可得到答案。

posted @ 2024-01-31 16:29  ChiFAN鸭  阅读(19)  评论(0编辑  收藏  举报