[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\) 的权值;
- 两步都走右,总共带来 \(0\) 的权值;
- 第一步走上,第二步走右,总共带来 \(0\) 的权值;
- 第一步走右,第二步走上,总共带来 \(1\) 的权值。
也就是说其实我们只关心第偶数步走了上还是右。
权值为定值 \(k\),那么我们直接就知道了所有偶数步中,有几步走了上,有几步走了右。奇数步同理。
两个组合数乘一下即可。
本文来自博客园,作者:Wuyanru,转载请取得作者同意并注明原文链接:https://www.cnblogs.com/Wuyanru/p/23018689
本文内容如有侵权行为,请联系作者删除,qq:1395170470

浙公网安备 33010602011771号