#CF2066C. Bitwise Slides
Bitwise Slides
C. Bitwise Slides
题目描述
给定一个数组 。同时给定三个变量 ,初始值均为 。
你需要按照从 到 的顺序处理数组中的所有数字。处理下一个数字 时,你必须恰好选择执行以下三种操作之一:
其中 表示**按位异或(XOR)**运算。
执行操作时必须遵守核心规则:在每一次操作结束后,三个数 不能两两互不相同。
总共有 种操作方式。请问其中有多少种方式不违反核心规则?答案可能很大,对 取模后输出。
输入格式
每个测试包含多组测试数据。第一行包含测试数据组数 ()。
每组测试数据格式如下: 第一行包含一个整数 (),表示数组 的长度。 第二行包含 个整数 ()。
保证所有测试数据的 之和不超过 。
输出格式
对于每组测试数据,输出一个整数,表示合法的操作方案数对 取模后的结果。
样例输入
5
3
1 7 9
4
179 1 1 179
5
1 2 3 3 2
12
8 2 5 3 9 1 8 12 9 9 9 4
1
1000000000
样例输出
3
9
39
123
3
样例说明
- 在第一组测试用例中,合法的操作序列有 种:。
- 在第二组测试用例中,合法的操作序列有 种:$PPPP, PPPQ, PPPR, QQQP, QQQQ, QQQR, RRRP, RRRQ, RRRR$。