【图论】CF2098D Baggage Claim

题目大意

给定一个 \(n\times m\) 的网格图,并存在一个经过 \(2k+1\) 个点的路径 \(p_1,p_2\dots p_{2k+1}\),其中,\(p_i\)\(p_{i+1}\) 之间共享一条公共边,同时 \(\forall i\neq j,p_i\neq p_j\)
由于污损,只已知奇数下标的点,偶数下标的点位置未知。求满足条件的路径数。


不考虑一个点不可以两次的情况,每次从 \((x_i,y_i)\)\((x_{i+1},y_{i+1})\),只有 \(1\)\(2\) 钟走法(当然也存在两点之间曼哈顿距离 \(\neq2\) 所以无解的情况)我们令这两种走法经过的中间点为 \(a_i\)\(b_i\),如果只有一种走法那么 \(a_i=b_i\)
我们考虑将 \(a_i\)\(b_i\) 两点之间连边,而一条路径上只能在 \(a_i\)\(b_i\) 两点中选一点则对应着对所连的边定向,边指向的点为选择走的点。而一个点至多经过一次则对应着图中每个点的入度 \(\leq1\)
对每个连通块单独考虑,令 \(n\) 表示该联通快的点数,\(m\) 表示该连通块的边数。

  • \(m=n-1\)。即连通块是一个树,此时不管怎么连都一切只有一个点入度 \(=0\),其余点入度 \(=1\)。那么于枚举这个入度为 \(0\) 的点,可以发现,定下哪个点入度为 \(0\) 后定向方案唯一。方案数为 \(n\)
  • \(m=n\)。即连通块为一个基环树。如果这个环为自环,那么方案数为一,否则环上有两种定向方式,则方案数为二。
  • \(m>n\)。由鸽巢定理可知一定存在至少一个点入度 \(>1\),所以无解。

code

posted @ 2025-09-02 17:13  Thyme_qwq  阅读(1)  评论(0)    收藏  举报