#P11283. 「GFOI Round 2」Turtle and Nediam
「GFOI Round 2」Turtle and Nediam
题目背景
English statement. You must submit your code at the Chinese version of the statement.
题目描述
对一个元素互不相同的长度 的正整数序列 ,定义 的“肿胃数(nediam)” 为:
- 当 时, 为 的中位数;
- 当 时,取 的任意一个长度为 的子段 ,记这个子段的中位数为 , 删掉 后的序列为 , 为所有 中 的最大值。
乌龟给你一个 的排列 和 次询问,每次询问给定 ,你需要求出 的“肿胃数(nediam)”,即 。
输入格式
为了加快读入速度,我们采用以下读入方法。
第一行包含六个正整数 。
第二行包含一个排列 。
接下来的 组询问,每组询问你要按照如下的方式生成 :
unsigned seed, A, B, C;
inline unsigned rnd() {
seed = A * seed * seed + B * seed + C;
seed = seed ^ (seed << 27);
seed = seed ^ (seed >> 19);
return seed;
}
inline std::pair<int, int> gen() {
int l, r;
do {
l = rnd() % n + 1;
r = rnd() % n + 1;
} while (abs(l - r) < 2);
if (l > r) {
std::swap(l, r);
}
return std::make_pair(l, r);
}
每组询问调用一次 gen()
生成这组询问的 。
输出格式
为了加快输出速度,我们采用以下输出方法。
设第 组询问的答案为 ,你需要输出 $(1 \times ans_1) \oplus (2 \times ans_2) \oplus \cdots \oplus (m \times ans_m)$,其中 为按位异或。
4 4 114 514 1919 810
1 3 4 2
1
10 100 123456 789123 456789 123456789
3 9 5 7 6 4 10 8 2 1
142
提示
【样例解释 #1】
生成的四组询问分别为 ,答案分别为 ,所以你需要输出 $(1 \times 2) \oplus (2 \times 3) \oplus (3 \times 3) \oplus (4 \times 3) = 2 \oplus 6 \oplus 9 \oplus 12 = 1$。
对于第一组询问,选择子段 或 都会使得 被删除。删除 后的序列为 ,中位数为 。
【数据范围】
本题使用捆绑测试。
子任务编号 | 特殊性质 | 分值 | ||
---|---|---|---|---|
无 | ||||
A | ||||
无 | ||||
B | ||||
无 | ||||
- 特殊性质 A:;
- 特殊性质 B: 从所有 的排列中等概率随机生成。
对于所有数据,满足:
- ;
- ;
- ;
- 是一个 的排列。