logo AlgoBeat OnlineJudge
登录 注册

#213499. 「LDOI R3」泡泡抗特

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

somewhere over the rainbow way up high.
there's a land that i heard of once in a lullaby.
only blue. only blue. 愛讓人,好憂鬱。
我的心。我的心。藍藍的。


给定长度为 的正整数序列

求满足以下条件的正整数三元组 的个数:

你只需要输出答案模 的值。

其中 代表二进制下的按位异或运算。

::::info[ 是什么?] 对于正整数 ,我们定义 在二进制下 的个数。

例如,,因此 。 ::::

输入格式

本题有多组测试数据。

每个输入数据第一行有一个整数

每组测试第一行输入一个正整数
每组测试第二行输入 个正整数,第 个正整数代表

输出格式

每组测试输出一行一个整数,代表答案模 的值。

样例

样例输入 1

2
3
1 1 1
5
1 2 3 4 5

样例输出 1

0
2

数据范围与提示

【样例解释】

  • 第一组输入没有合法的三元组。
  • 第二组输入有 两组合法。

【数据范围与约定】

对于 的数据,保证:

::cute-table{tuack}

特殊性质 分数
1
2
3
4 A
5 B
6
7

特殊性质 A:对于任意 ,满足
特殊性质 B:满足 且数据随机。

【其它注意事项】

本题输入量较大,请使用较快的 IO 方式。

本题 的范围较大,您可以使用 __int128

__int128 可以存储大致 左右的数据,你可以用它存储 。但是,它并不支持传统的输入输出,因此我们提供了读入模板,你可以调用该函数读入 __int128

void redi (__int128& ret) {
    ret = 0; int f = 1; char ch = getchar();
    while (ch < '0' || ch > '9') {if (ch == '-') f = -f; ch = getchar();}
    while (ch >= '0' && ch <= '9') ret = ret * 10 + ch - '0', ch = getchar();
    ret *= f;
} // 调用 redi(x) 以读入变量 x。