#P14487. [2025年广东省队集训]追忆

[2025年广东省队集训]追忆

问题描述

小 L 出了一个和 DAG 有关的问题并打算投给联合省选。虽然题目很烂,但因为是题,所以被纳入了被选题当中。小 L 因此很不重视,决定脚造数据。

然而,联合省选前一天,DAY1 T2 被爆破了,于是小 L 的题就变成了 DAY1 T2,并且因为小 L 太懒,所以没有重造数据。不出意外的话,意外发生了,小 L 的题被大量暴力通过了。

以上内容纯属虚构。

小 L 追忆了一下造数据的过程,发现他生成的 DAG 其实是按照以下方式生成的:

对于 i=2ni=2\sim nai,bia_i,b_i1i11\sim i-1 中随机生成,然后 iiai,bia_i,b_i 连有向边。

小 L 心想,数据既然是随机的,那么这个 DAG 处理起来肯定就很简单,于是给了你 n1n-1 个询问,第 i  (1i<n)i\;(1\le i<n) 个询问有参数 xi  (1xii)x_i\;(1\le x_i\le i),求 i+1i+1xix_i 的最短路,如果 i+1i+1 无法到达 xix_i 则输出 1-1

输入格式

第一行两个正整数 n,seedn,seed,其中 seedseed 是用来生成 ai,bia_i,b_i 的随机种子。

具体的,ai,bia_i,b_i 按照如下程序生成:

unsigned shift(unsigned &a)
{
	a^=a<<13;
	a^=a>>7;
	a^=a<<17;
	return a;
}
void init(unsigned seed)
{
	for(int i=2;i<=n;i++)
		a[i]=shift(seed)%(i-1)+1,
		b[i]=shift(seed)%(i-1)+1;
}

保证 seedseed[1,232)[1,2^{32}) 中随机生成。

第二行 n1n-1 个正整数 x1,x2,,xn1x_1,x_2,\cdots,x_{n-1}

输出格式

记第 ii 次询问的答案为 sis_i,由于输出量过大,你只需要输出 i=1n1(si+2)×i\oplus_{i=1}^{n-1}(s_i+2)\times i 即可,其中 \oplus 为异或运算。

输入样例

10 1
1 1 2 1 2 3 1 2 3

输出样例

17

样例1解释

a210a_{2\sim 10} 分别为 1,2,2,4,1,5,1,4,91,2,2,4,1,5,1,4,9

b210b_{2\sim 10} 分别为 1,2,3,2,1,1,6,7,91,2,3,2,1,1,6,7,9

s19s_{1\sim 9} 分别为 1,2,1,2,1,3,1,2,31,2,1,2,-1,3,1,2,3

数据范围

测试点编号 n=n= 特殊性质
11 1010 A
2,32,3 5×1045\times 10^4
4,54,5 10510^5
6,76,7 3×1053\times 10^5
8,98,9 5×1055\times 10^5 A
10,1110,11
12,1312,13 10610^6 B
14,1514,15
16,1716,17 2×1062\times 10^6 B
18,19,2018,19,20

特殊性质 A:保证 xix_i1i1\sim i 中随机生成。

特殊性质 B:保证 xi103x_i\le 10^3