[CF348D]Turtles
Description
\(n \times m\) 之网格\(^\dagger\)禁走入志之 # 处\(^\dagger\)二鳖始于 \((1,1)\) 矢之 \((n,m)\) 其移者惟下或右行一格也\(^\circ\)计无交之数。
\(^\dagger\)注二鳖无异也。
\(1 \le n,m \le 3000\)。
Solution
容斥 \(\rm dp\)。考虑两个鳖走的方案的形态,只有可能是第一个鳖从 \((1,1) \to (1,2) \to \dots \to (n-1, m) \to (n,m)\),另一个鳖走 \((1,1) \to (2,1) \to \dots \to (n,m-1) \to (n,m)\)。
两个可以分别 \(\rm dp\) 出路径方案相乘得到答案。这样路径还是有相交的。我们假设这样两条个路径 \(P_1=\{(1,1),p_1,p_2,\dots,p_{n+m-2},(n,m)\}\) 和 \(P'_1=\{(1,1),p'_1,p'_2,\dots,p'_{n+m-1},(n,m)\}\)。这里,钦定 \(p_1=(1,2)\),\(p'_1=(2,1)\),\(p_{n+m-2}=(n-1,m)\),\(p'_{n+m-2}=(n,m-1)\)。
若点 \(p_i=p'_i\) 即路径出现相交(钦定这个 \(i\) 是所有满足该条件最小的),则该路径唯一对应一个新路径(新路径也唯一对应该路径):对所有 \(n \ge j> i\) 交换 \(p_i,p'_{i}\),最终得到新路径 \(P_2,P_2'\)。
可以证明 \(P_2\) 个数相当于从 \((1,2)\) 走到 \((n,m-1)\) 的方案数,\(P_2'\) 个数相当于从 \((2,1)\) 走到 \((n-1,m)\) 的方案数。是故再使用 \(\rm dp\) 统计其方案即可,复杂度 \(\mathcal O(nm)\)。

浙公网安备 33010602011771号