[EC-Final 2019] B. Black and White

题目链接:QOJ5039

题意

\(n+1\) 条横线和 \(m+1\) 条竖线形成了若干交点,第 \(i\) 条横线和第 \(j\) 条竖线交点为 \((i,j)\)

\((i,j),(i+1,j),(i,j+1),(i+1,j+1)\) 四个点围成一个格子,若 \(i\equiv j\pmod 2\) 则这个格子权值为 \(1\),否则权值为 \(-1\)

现在要从 \((0,0)\) 走到 \((n,m)\),每一次在 \((x,y)\) 只能往 \((x+1,y)\)\((x,y+1)\) 走。

一条路径的权值为其左侧所有格子的权值和,求权值为 \(k\) 的路径个数。

数据组数 \(T\le 100\)\(n,m\le 10^5\)

题解

\(n+m\) 为奇数,枚举最后一步走的方向。

这样我们最终会恰好走偶数步。


考虑所有左上到右下的对角线,一条线上所有格子权值必然相等。

补全左上角,使得每一条对角线的格子数量相等。(并对读入的 \(k\) 进行修改)

在走完第 \(i\) 步之后计算第 \(i\) 条对角线带来的权值。(最后一步其实啥都没算)

然后考虑相邻的两步带来的权值。

如果每一次走两步,那么每一次走的时候,必然第一步结算正权值,第二步结算负权值。

那么有以下四种情况:

  1. 两步都走上,总共带来 \(1\) 的权值;
  2. 两步都走右,总共带来 \(0\) 的权值;
  3. 第一步走上,第二步走右,总共带来 \(0\) 的权值;
  4. 第一步走右,第二步走上,总共带来 \(1\) 的权值。

也就是说其实我们只关心第偶数步走了上还是右。

权值为定值 \(k\),那么我们直接就知道了所有偶数步中,有几步走了上,有几步走了右。奇数步同理。

两个组合数乘一下即可。

posted @ 2026-09-18 00:43  Wuyanru  阅读(2)  评论(0)    收藏  举报