luogu#P11528. [THUPC2025 初赛] 乒乓球赛

[THUPC2025 初赛] 乒乓球赛

题目描述

Menji 喜欢看乒乓球比赛,但由于观赛的人太多,他只能听到一部分的信息。

乒乓球赛一共包含 TT 局,一局乒乓球的过程如下:

两位选手分别有得分,用 sAs_AsBs_B 表示,初始 sA=sB=0s_A=s_B=0

接下来会进行若干个回合,在第 ii 个回合,会有一个获胜者 wini(wini{A,B})win_i(win_i\in\{\texttt{A},\texttt{B}\}),若 wini=Awin_i=\texttt{A}AA 的得分 +1+1,即 sA=sA+1s_A=s_A+1,否则 BB 的得分 +1+1,即 sB=sB+1s_B=s_B+1。当任意一名选手达到 1111 分,且领先另一名选手至少 22 分时(即 max(sA,sB)11\max(s_A,s_B)\geq 11, max(sA,sB)min(sA,sB)2\max(s_A,s_B)-\min(s_A,s_B)\geq 2),该局立刻结束

对于每一局比赛,Menji 听到了最终该局进行的回合数 nn,以及一部分时刻结束时的比分,例如 Menji 可能在第 55 回合结束时听到比分是 3:23:2但 Menji 并不知道哪一名选手获得了 33 分,只知道其中一名选手获得了 33 分,另外一名选手获得了 22

具体的,Menji 的信息可以被表示为一个非负整数 nn,表示该局恰好进行了 nn 个回合,以及 22 个长为 nn 的序列 a1an,b1bna_1\cdots a_n,b_1\cdots b_n。对于每一个 i(1in)i(1\leq i\leq n),若 ai=bi=1a_i=b_i=-1,则 Menji 没有听到任何第 ii 个回合结束时的信息,否则保证 0ai,bin0\leq a_i,b_i\leq n,表示在第 ii 个回合结束时,一定满足 sA=ai,sB=bis_A=a_i,s_B=b_isA=bi,sB=ais_A=b_i,s_B=a_i

显然,很多时候 Menji 的信息并不能还原比赛每一局每一回合的获胜者,甚至有时候 Menji 的信息会是错误的。Menji 想要知道,有多少个获胜者序列 win1winnwin_1\cdots win_n 满足他已知的所有信息?

由于答案可能很大,请输出答案对 998244353998244353 取模的结果。

输入格式

第一行一个整数 T(1T105)T(1\leq T\leq 10^5),表示乒乓球比赛的局数。

对于每一局:

第一行一个整数 nn,表示比赛恰好进行了 n(1n105)n(1\leq n\leq 10^5) 回合。

之后 nn 行,每行两个整数 ai,bia_i,b_i,满足 ai=bi=1a_i=b_i=-10ai,bin0\leq a_i,b_i\leq n,表示 Menji 已知的一部分信息。

保证总回合数不超过 5×1055\times 10^5,即 n5×105\sum n\leq 5\times 10^5

输出格式

对于每一局,输出一行一个数,表示可能的获胜者序列个数,对 998244353998244353 取模。

7
11
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
11
-1 -1
1 1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
11
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
1 11
22
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
11 9
-1 -1
-1 -1
22
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
23
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
-1 -1
22
-1 -1
1 1
-1 -1
3 1
-1 -1
4 2
-1 -1
2 6
-1 -1
-1 -1
5 6
-1 -1
-1 -1
7 7
-1 -1
-1 -1
9 8
-1 -1
9 10
-1 -1
11 10
-1 -1
2
0
0
0
369512
0
864

提示

样例解释

比赛总共进行了 66 局。

  • 对于第一局,恰好进行了 1111 个回合结束,一定是某一选手连胜了 1111 回合,所以获胜者序列一定是全 A\texttt{A} 或是全 B\texttt{B},故答案为 22
  • 对于第二局,恰好进行了 1111 个回合结束,但第二回合结束的比分是 1:11:1,最终至多只能达到 10:110:1 的比分,因此不存在合法的获胜者序列使得恰好 1111 回合结束,故答案为 00
  • 对于第三局,显然不可能在 1111 个回合内达到 1:111:11 的比分,故答案为 00
  • 对于第四局,若第 2020 个回合的比分达到 11:911:9,则该局会立刻结束,不会进行到第 2222 个回合,故答案为 00
  • 对于第五局,双方的得分一定是先达到 10:1010:10,之后其中一名选手连胜 22 局,故答案为 (2010)×2=369512\dbinom{20}{10}\times 2 = 369512
  • 对于第六局,容易发现不可能恰好进行 2323 个回合时结束,故答案为 00
  • 对于第七局,我有一个完美的解释,可惜写不下了。

题目来源

题目来自 THUPC2025(2025年清华大学学生程序设计竞赛暨高校邀请赛)初赛,信息来源于 THUSAAC 仓库