CF2025E Card Game

Sol

先考虑同色的有多少分配方式,注意到此时 \(m\) 只能平分,考虑把该问题转化成如下:

  1. 一个点初始在 \((0,0)\)
  2. 对于每个数字,从小到大枚举,如果当前数字为先手所取,那么往右走一格,否则往上走一格。
  3. 答案即为 \((0,0)\)\((\frac{m}{2},\frac{m}{2})\) 的方案数,且途中不经过 \(y=x+1\) 的方案数。

这做法显然正确,对于先手拥有的权值 \(\le x\) 的卡数一定要多于对手权值 \(\le x\) 的卡数,否则显然无解。

注意到这个东西就是卡特兰数。

接下来考虑加入数字 \(1\) 之后怎么做,显然 \(1\) 可以特殊考虑每个颜色加入了几张 \(1\),假设加了 \(t\)\(1\),那么对于前面的问题转化可以变成如下:

  1. 一个点初始在 \((0,0)\)
  2. 先往右走 \(t\) 步。
  3. 对于每个数字,从小到大枚举,如果当前数字为先手所取,那么往右走一格,否则往上走一格。
  4. 答案即为 \((0,0)\)\((\frac{m+t}{2},\frac{m+t}{2})\) 的方案数,且途中不经过 \(y=x+1\) 的方案数。

注意需要满足 \(m+t\equiv 0\pmod 2\),这个转化与上面同理。

那么就可以考虑 DP,设 \(f_{i,j}\) 表示前 \(i\) 个花色(不包括 \(1\))所用去 \(1\) 的卡片数量,那么不难得到 \(\displaystyle f_{i,j}=\sum_{k=0~\operatorname{and}~2 \mid (m+k)}^{j} f_{i-1,j-k}\times H(k)\),其中 \(H(k)\) 为转化的问题 \(t=k\) 的答案。

最后答案就是 \(\displaystyle \sum_{k=0~\operatorname{and}~2 \mid (m+k)}^{m} f_{n,k}\times H(k)\)

最后讲讲如何计算 \(H(k)\)

不难求出从 \((0,0)\)\((n,m)\) 的方案数是 \(\binom(n+m,n)\),一共 \(n+m\) 个位置,选择 \(m\) 个位置往上即可(\(n\) 个往右也同理)。

首先我们可以转化成求更加通用的从 \((0,0)\)\((n,m)\) 不经过 \(y=x+1\) 的方案数。

那么对于任意一条经过 \(y=x+1\) 的路径,可以把路径从第一个经过 \(y=x+1\) 点位置以后的线沿着 \(y=x+1\) 反转(镜像),那么路径就会变成从 \((0,0)\)\((n-1,m+1)\)

注意到任意一条不合法的路径都可以转化成 \((0,0)\)\((n-1,m+1)\) 的路径,反过来也可以对应,那么这两个东西显然是双射,所以等价,故 \((0,0)\)\((n,m)\) 不经过 \(y=x+1\) 的方案数为 \(\binom{n+m}{n}-\binom{n+m}{n-1}\)

Code

Link

posted @ 2025-03-26 10:44  incra  阅读(12)  评论(0)    收藏  举报