loading...

[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)\)

submission

posted @ 2025-03-15 15:37  goldspade  阅读(9)  评论(0)    收藏  举报