#P14196. [ICPC 2024 Hangzhou R] Japanese Bands

[ICPC 2024 Hangzhou R] Japanese Bands

Description

Grammy 正在以她最喜欢的日本音乐媒体企划 BanG Dream!\textit{BanG Dream!} 设计一款新的集换式卡牌游戏(TCG)。按照她的设定,总共有 n1n_1 张角色卡和 n2n_2 张音乐卡。现在她需要为每张卡牌分配一个 11mm(包含 11mm)之间的整数,表示这张卡包含的魔力值。

在每局 TCG 游戏中,总会有一些特殊连携技可以造成额外伤害。Grammy 现在考虑了一条与卡牌赋值有关的特殊规则。具体来说,给定 kk 对整数 (a1,b1),(a2,b2),,(ak,bk)(a_1, b_1), (a_2, b_2), \cdots, (a_k, b_k),其中 1ai,bim1 \le a_i, b_i \le m。Grammy 想确保每一组这样的数值组合都可以在游戏中被打出。也就是说,对每一对整数 (ai,bi)(a_i, b_i),所有卡牌的赋值必须满足以下两个约束中的至少一个:

  • 有一张角色卡上的值为 aia_i,同时有一张音乐卡上的值为 bib_i
  • 有一张音乐卡上的值为 aia_i,同时有一张角色卡上的值为 bib_i

请你帮助 Grammy 计算,有多少种合法的卡牌赋值方案。

C\mathbb{C} 表示角色卡上的所有整数的多重集,M\mathbb{M} 表示音乐卡上的所有整数的多重集。如果 C\mathbb{C}M\mathbb{M} 不同,则我们认为两个赋值不同。

注意:一个整数在多重集中可以出现多次。我们说两个多重集 X\mathbb{X}Y\mathbb{Y} 不同,是指存在某个整数 kk,使得 kkX\mathbb{X}Y\mathbb{Y} 中的出现次数不同。

Input Format

有若干组测试数据。输入的第一行包含一个整数 TT1T5001 \le T \le 500),表示测试数据组数。对于每组测试数据:

第一行输入四个整数 n1n_1n2n_2mmkk1n1,n21091 \le n_1, n_2 \le 10^91m201 \le m \le 201km21 \le k \le m^2)。

接下来 kk 行中,第 ii 行输入两个整数 aia_ibib_i1ai,bim1 \le a_i, b_i \le m)。

保证最多只有 55 组测试数据满足 m>10m > 10

Output Format

对于每组测试数据,输出一行一个整数,表示合法卡牌赋值方案的数量。由于答案可能很大,输出对 (109+7)(10^9 + 7) 取模的结果。

3
2 3 3 3
2 3
1 1
2 3
2 2 2 1
1 1
1 1 10 2
1 2
1 3
6
4
0

Hint

对于第一个样例测试,合法的 (C,M)(\mathbb{C}, \mathbb{M}) 有这几组:({1,2},{1,1,3})(\{1, 2\}, \{1, 1, 3\})({1,2},{1,2,3})(\{1, 2\}, \{1, 2, 3\})({1,2},{1,3,3})(\{1, 2\}, \{1, 3, 3\})({1,3},{1,1,2})(\{1, 3\}, \{1, 1, 2\})({1,3},{1,2,2})(\{1, 3\}, \{1, 2, 2\})({1,3},{1,2,3})(\{1, 3\}, \{1, 2, 3\})

对于第二个样例测试,合法的 (C,M)(\mathbb{C}, \mathbb{M}) 有这几组:({1,1},{1,1})(\{1, 1\}, \{1, 1\})({1,2},{1,1})(\{1, 2\}, \{1, 1\})({1,1},{1,2})(\{1, 1\}, \{1, 2\})({1,2},{1,2})(\{1, 2\}, \{1, 2\})

由 ChatGPT 5 翻译