#P15692. [ICPC 2023 Jakarta R] Deck-Building Game

[ICPC 2023 Jakarta R] Deck-Building Game

说明

你和你的朋友正在玩一款构筑牌组的游戏。有 NN 张卡牌,编号从 11NN。第 ii 张卡牌的数值为 AiA_i

你需要为你和你的朋友各自构建一个牌组。一张卡牌不能同时出现在两个牌组中,也可以选择不使用所有 NN 张卡牌。允许某个牌组为空,即不包含任何卡牌。

一个牌组的“力量”定义为该牌组中所有卡牌数值的按位异或(XOR)结果。空牌组的力量为 00

如果两个牌组的力量相等,则认为这局游戏是平衡的。

请你计算有多少种不同的方法可以构建两个牌组,使得游戏平衡。只要有一个牌组包含至少一张不同的卡牌,就认为两种方法不同。由于答案可能很大,请输出答案对 998244353998\,244\,353 取模的结果。

输入格式

第一行包含一个整数 NN2N1000002 \le N \le 100\,000)。

第二行包含 NN 个整数 AiA_i1Ai1000001 \le A_i \le 100\,000)。

输出格式

输出一个整数,表示可以使游戏平衡的构建方法数。答案对 998244353998\,244\,353 取模。

4
16 12 4 8
9
4
1 2 4 8
1
2
1 1
5
6
1 1 1 2 2 2
169

提示

样例输入输出 1 说明

SSTT 分别为你和你朋友的牌组。共有 99 种方法可以使游戏平衡。

  • S={}S = \{\}T={}T = \{\}。两个牌组的力量均为 00
  • S={2,3,4}S = \{2, 3, 4\}T={}T = \{\}。两个牌组的力量均为 00
  • S={}S = \{\}T={2,3,4}T = \{2, 3, 4\}。两个牌组的力量均为 00
  • S={2,4}S = \{2, 4\}T={3}T = \{3\}。两个牌组的力量均为 44
  • S={3}S = \{3\}T={2,4}T = \{2, 4\}。两个牌组的力量均为 44
  • S={2,3}S = \{2, 3\}T={4}T = \{4\}。两个牌组的力量均为 88
  • S={4}S = \{4\}T={2,3}T = \{2, 3\}。两个牌组的力量均为 88
  • S={3,4}S = \{3, 4\}T={2}T = \{2\}。两个牌组的力量均为 1212
  • S={2}S = \{2\}T={3,4}T = \{3, 4\}。两个牌组的力量均为 1212

样例输入输出 2 说明

唯一能使游戏平衡的方法是两个牌组都为空。

样例输入输出 3 说明

共有 55 种方法可以使游戏平衡。

  • S={}S = \{\}T={}T = \{\}。两个牌组的力量均为 00
  • S={1,2}S = \{1, 2\}T={}T = \{\}。两个牌组的力量均为 00
  • S={}S = \{\}T={1,2}T = \{1, 2\}。两个牌组的力量均为 00
  • S={1}S = \{1\}T={2}T = \{2\}。两个牌组的力量均为 11
  • S={2}S = \{2\}T={1}T = \{1\}。两个牌组的力量均为 11

由 ChatGPT 4.1 翻译