loj#P3075. 「2019 集训队互测 Day 3」组合数求和

「2019 集训队互测 Day 3」组合数求和

题目描述

定义 $f(j)\ \equiv\ \sum_{i=0}^{n-1}\ C_{i\cdot d}^{j}\ {\pmod M},\ 0\ \leq\ f(j)\ <\ M$,其中 n, d, Mn,\ d,\ M 为给定值。

现在给定 mm,输出 $f(0)\ \mathrm{xor}\ f(1)\ \mathrm{xor}\ f(2)\ \mathrm{xor}\ \cdots\ \mathrm{xor}\ f(m - 1)$ 的值。

其中 CnmC_{n}^{m} 为组合数 nnmm,即 $C_{n}^{m}\ =\ \begin{cases}\frac{n!}{m!\cdot (n-m)!}&, 0\leq m\leq n \cr 0&, \text{otherwise}\end{cases}$。xor\mathrm{xor} 表示异或和。

输入格式

一行四个整数 n, m, d, Mn,\ m,\ d,\ M,由空格隔开。

输出格式

一行一个整数表示答案。

3 2 3 998244353
10

数据范围与提示

本题采用捆绑测试。

对于所有测试包均满足 $1\ \leq\ d\ \leq\ 100,\ 1\ \leq\ m\cdot d\ \leq\ 3\times 10^6,\ 1\ \leq\ n\cdot d\ \leq\ 10^9,\ 10^8\ \leq\ M\ \leq\ 10^9$。

测试包编号 测试包分值 其它约定
11 44 nd, m  2000n\cdot d,\ m\ \leq\ 2000
22 1010 m  400m\ \leq\ 400
33 66 m  8000, M = 998244353m\ \leq\ 8000,\ M\ =\ 998244353
44 66 m  8000m\ \leq\ 8000
55 77 d = 1d\ =\ 1
66 2222 gcd(d, M) = 1\gcd(d,\ M)\ =\ 1
77 77 d = 2d\ =\ 2
88 77 d = 4d\ =\ 4
99 88 dd 为质数
1010 2323