D. 魔法传送门 (magic.cpp)

    Type: Default File IO: magic 1000ms 256MiB

魔法传送门 (magic.cpp)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

在一个神秘的魔法大陆上,存在着NN座闪耀的城市,它们如同星辰般点缀在大地之上,分别以1,2,3,,N1,2,3,\ldots,N作为其独特的标识。

大陆的魔法师们怀着对二进制魔法的钟爱,赋予每座城市一个独特的魔法数字。第ii座城市的魔法数字由神秘的数字AiA_i决定。根据一种古老的魔法规则,对于任意两座城市i,j(i<j)i, j(i < j),从城市ii通往城市jj的传送门数量由F(Ai&Aj)F(A_i \& A_j)决定。

现在,魔法师们希望探寻从城市11出发前往城市NN的所有可能路径的数量。然而,这个数字可能会因为路径的复杂度而变得庞大。为了简化问题,你需要计算答案对 998244353998244353 取模后的结果。

这个神秘的函数F(x)F(x)表示xx的二进制表示中11的个数,例如:

  • F(5)=2F(5)=2
  • F(15)=4F(15)=4
  • F(2)=1F(2)=1
  • F(0)=0F(0)=0

符号&\&代表二进制与运算,它的规则是:只有当两个数的对应位都为11时,结果才为11;否则结果为00。换言之,当某个位上的数都是11时,结果位也为11;否则结果位为00

  10101010
& 11110000
-----------
  10100000

输入格式

第一行输入一个正整数 TT,表示数据组数。

对于每一组数据,第一行输入一个正整数 NN,表示城市数。

第二行输入 NN 个正整数 A1,A2,,ANA_1,A_2,\ldots, A_N

输出格式

对于每一组数据,输出一行一个整数,表示从城市 11 到城市 NN 的路径数,对 998244353998244353 取余数之后的结果。

3
4
2 3 3 1
5
1 1 1 1 2
10
213672 382909 212809 216719 213980 121009 213899 220021 289002 120390
4
0
12433985

一共有 44 条路径:

  • 1241 \to 2 \to 4
  • 1341\to 3 \to 4
  • 12341\to 2 \to 3 \to 4
  • 12341\to 2 \to 3 \to 4

对于第二组数据,141 \sim 4 号城市都与城市 55 没有单向道路,所以路径数是 00

数据范围与约定

  • 对于 20% 的数据,1N5,1Ai<231\le N \le 5, 1\le A_i < 2^3

  • 对于 50% 的数据,1N10001\le N \le 1000

  • 对于 100% 的数据,$1\le N \le 2\times 10^5, 1\le T \le 5, 1\le A_i < 2^{30}$。

0818

Not Attended
Status
Done
Rule
OI
Problem
4
Start at
2025-8-18 8:15
End at
2025-8-18 11:45
Duration
3.5 hour(s)
Host
Partic.
61