#P11326. 【MX-S7-T4】「SMOI-R2」XA-Game

【MX-S7-T4】「SMOI-R2」XA-Game

题目背景

原题链接:https://oier.team/problems/S7D

题目描述

Alice 和 Bob 在玩一个游戏。

初始地,有一个长度为 nn 的 01 序列,位置编号为 1,2,,n1,2,\dots,n。双方轮流操作,Alice 先操作。

Alice 的操作是任意选择序列中位置相邻的两个数,将它们合并为它们的异或值(即 C++ 中的 ^ 操作)。

Bob 的操作是任意选择序列中位置相邻的两个数,将它们合并为它们的与值(即 C++ 中的 & 操作)。

游戏将持续进行,直至序列中仅剩一个数。如果最后剩下的数是 11,Alice 获胜;否则,Bob 获胜。

在游戏开始前,Bob 施展了 mm 次魔法调整初始序列,第 ii 次魔法将第 aia_i 个位置的数改为 viv_i

Alice 想知道,如果双方都使用最优策略,有多少种可能的初始序列(在 Bob 施展魔法之前)能够让她赢得游戏。由于答案可能非常大,你需要将结果对质数 109+710^9 + 7 取模。

输入格式

本题有多组测试数据。

第一行,一个正整数 TT,表示数据组数。接下来,对于每组数据:

  • 第一行,两个非负整数 n,mn, m,分别表示 01 序列的长度和 Bob 的魔法操作次数。
  • 接下来 mm 行,第 ii 行两个非负整数 ai,via_i, v_i,表示第 ii 次魔法操作将第 aia_i 个位置的数改为 viv_i保证 ai\boldsymbol{a_i} 严格递增给出,即 1a1<a2<<amn\boldsymbol{1 \le a_1 < a_2 < \cdots < a_m \le n}

输出格式

对于每组测试数据:

  • 仅一行,一个整数,表示答案对 109+710^9 + 7 取模后的结果。
5
3 0
5 2
2 0
4 1
6 3
1 0
2 1
4 1
1234 4
52 1
110 1
520 0
999 1
114514 0
3
12
32
27109943
596672839

提示

【样例解释 #1】

第一组数据中,可以让 Alice 赢的序列有 11011010110101101133 种。

第二组数据中,可以让 Alice 赢的序列有 1010010100111001110010110101101111011110100011000111001110010010100101011010110110011100111101111011001110011101111011111212 种。

其中序列 1110011100,在 Bob 实施完魔法后变成了 1011010110。Alice 第一次操作可以合并第四个数和第五个数,序列变成 10111011,可以发现 Bob 无论怎么操作 Alice 都会赢。

【样例 #2】

见附件中的 game/game2.ingame/game2.ans

该组样例满足测试点 565\sim6 的约束条件。

【样例 #3】

见附件中的 game/game3.ingame/game3.ans

该组样例满足测试点 101110\sim11 的约束条件。

【样例 #4】

见附件中的 game/game4.ingame/game4.ans

该组样例满足测试点 121312\sim13 的约束条件。

【样例 #5】

见附件中的 game/game5.ingame/game5.ans

该组样例满足测试点 182018\sim20 的约束条件。

【数据范围】

对于所有测试数据,保证:1T5×1051\le T\le5\times 10^51n10151\le n\le 10^{15}0mn0\le m\le nm5×105\sum m \le5\times 10^51ain1\le a_i\le nai<ai+1a_i < a_{i + 1}vi{0,1}v_i\in\{0,1\}

测试点编号 TT\le nn\le m\sum m\le 特殊性质
11 4040 2020 4040
242\sim4 10310^3 5×1025\times10^2 5×1055\times10^5 A
565\sim6 B
797\sim9 C
101110\sim11 2×1052\times 10^5 10610^6 00
121312\sim13 2×1052\times10^5
1414 2×1032\times 10^3 101510^{15} 00
151615\sim16 2×1032\times10^3
1717 5×1055\times 10^5 00
182018\sim20 5×1055\times10^5
  • 特殊性质 A:n=mn = m
  • 特殊性质 B:n=mn = m,且 vi=1v_i=1
  • 特殊性质 C:n=mn = m,且 vv 中没有相邻的两个 00,即 vi+vi+10v_i + v_{i + 1} \ne 0