[ARC061F] Card Game for Three

题意

\(3\) 个人。每个人分别有 \(n1, n2, n3\) 张牌。

每张牌上有一个名字,分别表示三个人。

对于每个回合,进行如下操作:

  • 若当前回合的玩家手上没有牌了,则该玩家获胜。
  • 否则从手牌中取出一张牌,丢弃她,并进入该牌上的名字的玩家的回合。

求第一名玩家获胜的牌的分配方案数。

Sol

很简单的数数题。

首先考虑对于这个问题建立一个双射。

不难想到可以考虑确定当前牌的 丢弃序列 \(S\)

注意到因为某个玩家获胜后,对于别的玩家来说牌会有剩余。

因此可以考虑使用 \(m\) 记录当前的 \(|S|\)

显然序列 \(S\) 包含 \(n1\)\(1\),考虑枚举当且序列中,非 \(1\) 数的个数。

不难列出:

\[\sum_{k = 0} ^ {n2 + n3} 3 ^ {n2 + n3 - k} \dbinom{k + n1 - 1}{k} \sum_{i = 0} ^ k [i \le n2][k - i \le n3] \dbinom{k}{i} \]

考虑设

\[\begin{aligned} f(k) = \sum_{i = k - n3} ^ {n2} \dbinom{k}{i} \end{aligned} \]

注意到下指标求和很不好做,但是这个式子的形式十分优美,考虑递推。

\[\begin{aligned} &= \sum_{i = k - n3} ^ {n2} \dbinom{k - 1}{i} + \dbinom{k - 1}{i - 1} \\ &= \sum_{i = k - n3} ^ {n2} \dbinom{k - 1}{i} + \sum_{i = k - n3 - 1} ^ {n2 - 1} \dbinom{k - 1}{i} \end{aligned} \]

注意到这两个东西和 \(f(k - 1)\) 很像,左边显然少一个 \(\dbinom{k - 1}{k - n3 - 1}\),右边少一个 \(\dbinom{k - 1}{n2}\)

因此

\[f(k) = 2f(k - 1) - \dbinom{k - 1}{n2} - \dbinom{k - 1}{k - n3 - 1} \]

做完了。

时间复杂度:\(O(n)\)

posted @ 2024-04-10 09:11  cxqghzj  阅读(2)  评论(0编辑  收藏  举报