|
|
多想了很多东西。 不难发现分差不是很大,可以设 $f_{i,j}$ 表示当前进行了 $i$ 局,$s_A-s_B=j$ 的方案数。 可以从前往后转移,不难发现确定了 $i,j$ 就能确定两个人的得分,不让不合法的状态转移到别的状态即可。 时间复杂度 $O(Tn)$。
题目4273 [THUPC 2025 pre] 乒乓球赛
AAAAAAAAAAAAAAAA
2
评论
2026-01-31 11:17:23
|
|
|
官方题解。来源:清华大学学生算法协会仓库 Sol1:直接分类讨论,如果 $n\leq 20$ 则最终比分一定是 $11:n-11$,如果 $>20$ 一定是 $n/2+1:n/2-1$,这也代表 $n>20$ 的时候一定是偶数。 令已知信息依次为 $(a_{i_1},b_{i_1})\dots (a_{i_k},b_{i,k})$,注意我们认为初始比分 $0:0$ 和上述的最终比分也是已知信息。那我们可以发现每一个 $(a_{i_j},b_{i_j})$ 变化到 $(a_{i_{j+1}},b_{i_{j+1}})$ 的过程是独立的,可以分别计算。 若 $n>20$,我们将 $10:10$ 也当成一条信息加入,那么 $10:10$ 之前相当于网格路径计数从,是一个组合数形式(注意有序对这里是否乘 $2$ 的细节),对于后序每一局的比分实际上都是确定的,在 $x:x$ 变成 $x+1:x$ 时乘 $2$ 即可。 Sol2:DP,注意到任意时刻比分差不超过 $11$,所以直接 $f_{i,j}$ 表示前 $i$ 局比分差为 $j$ 的方案数,然后写一个判定状态是否合法的函数即可,避免很多细节。
题目4273 [THUPC 2025 pre] 乒乓球赛
AAAAAAAAAAAAAAAA
1
评论
2026-01-30 20:20:24
|