The Da Vinci Code

题目背景

> 圣杯在罗斯琳教堂下静待。 > 大师杰作掩映中相拥入眠。 > 剑刃圣杯守护着她的门宅。 > 星空下她可安息无碍。 好的题目不需要花里胡哨的背景。

题目描述

给定一个长度为 $n$ 的数列 $a$,初始情况下 $a_i=i$。 另有一个取值在 $[1,n]$ 内的随机的整数 $x$,它取 $i$ 的概率为 $b_i$。 接下来进行 $k$ 次操作,每次**均匀随机**地选两个 $[1,n]$ 中的整数 $i,j$(允许 $i=j$),交换 $a_i,a_j$ 的值(如果 $i=j$ 则什么也不干)。问最后 $x$ 在位置 $i$ 上的概率,你需要对所有 $1\leq i\leq n$ 求出答案。你需要输出答案模 $3221225473$ 的值。 我们定义 $x$ 在位置 $i$ 上指 $a_i=x$。

输入输出格式

输入格式


一行三个整数 $n,k,seed$。接下来使用如下代码生成 $b_i$: ```cpp #include <cstdio> typedef unsigned long long ull; typedef unsigned int uint; typedef long long ll; const uint mod = 3221225473u; const int N = 20000010; ull seed; ull getnext() { seed ^= seed << 13; seed ^= seed >> 17; seed ^= seed << 5; return seed; } uint rd(uint l, uint r) { return getnext() % (r - l + 1) + l; } int n; ull k; uint b[N]; int main() { scanf("%d%llu%llu", &n, &k, &seed); ull sum = 0; for (int i = 1; i < n; ++ i) b[i] = rd(2u, mod - 1), (sum += b[i]) %= mod; b[n] = mod + 1 - sum; } ```

输出格式


设 $ans_i$ 表示 $x$ 在位置 $i$ 上的概率模 $3221225473$,则输出 $ans_i\times i$ 的异或和。

输入输出样例

输入样例 #1

2 9 998244353

输出样例 #1

2684354563

输入样例 #2

7 3 123456789

输出样例 #2

24313281849

输入样例 #3

10 9000000000000000000 1000000000000000000

输出样例 #3

20026214895

输入样例 #4

4 0 123456789

输出样例 #4

12357556560

说明

#### 【样例解释】 对于样例 #1: $b$ 数组为 $\{2134949164 ,1086276310\}$,操作 $9$ 次后 $x$ 在两个位置的概率均为 $\dfrac12$。 对于样例 #2: $b$ 数组为 $\{1863763622,1043615898,1055155266,1556793106,1763540175,1239801170,1141007183\}$。 #### 【数据范围】 对于 $100\%$ 的数据: * $2\leq n\leq2\times10^7$,$0\leq k,seed<2^{64}$。 * $1<b_i<3221225473$,$\sum\limits_{i=1}^n b_i\equiv 1\pmod{3221225473}$。 * 数据保证 $1<b_n<3221225473$ 且 $3221225473$ 是质数。 --- **本题采用捆绑测试**。 | $\text{Subtask}$ |$n\le$|$k\le$|分值| |:-:|:-:|:-:|:-:| |$0$|$2$|$2^{64}-1$|$1$| |$1$|$5$|$5$|$4$| |$2$|$200$|$200$|$6$| |$3$|$200$|$2^{64}-1$|$9$| |$4$|$2000$|$2000$|$7$| |$5$|$2\times10^7$|$1$|$5$| |$6$|$10^6$|$10^6$|$8$| |$7$|$2\times10^7$|$10^7$|$10$| |$8$|$10^6$|$2^{64}-1$|$15$| |$9$|$2\times10^7$|$2^{64}-1$|$35$|