luogu#P7580. 「RdOI R2」因数和(sum)
「RdOI R2」因数和(sum)
题目背景
monsters 喜欢因数,所以他要出一道关于因数的题。
题目描述
众所周知, 的标准分解形式为:。
给定一个序列 ,长度为 。
定义 $f(x)=\sum\limits_{d|x}\left({a_{\frac{x}{d}}\times\prod\limits_{i=1}^{k_d}{C_{c_{d,i}+m}^{m}}}\right)$,现在需要你求出 ,其中 是给定常数。
由于 monsters 不喜欢太大的数,他需要你输出答案模 的值。
另外,为了避免过大的输入输出量,本题使用随机数生成数据,并且只需要你输出所有答案的异或和。
如果你不知道 是什么,,其中 代表阶乘。
输入格式
输入共有一行。
第一行,三个非负整数 。
你需要在程序中调用 次数据生成器(randomdigit
)来得到 。
输出格式
输出共有一行一个整数,为所有 的异或和。
3 0 12345678
175092810
114514 100000 1919810
212218651
9919810 2 12121121
204065242
提示
数据生成器
C/C++:
#define uint unsigned int
uint seed;
inline uint randomdigit(){
seed^=seed<<13;
seed^=seed>>17;
seed^=seed<<5;
return seed;
}
pascal:
var seed:dword;
function randomdigit:dword;
begin
seed:=seed xor(seed shl 13);
seed:=seed xor(seed shr 17);
seed:=seed xor(seed shl 5);
randomdigit:=seed;
end;
python3:
seed = 0 # please input seed
mod = 1 << 32
def randomdigit():
global seed
seed ^= (seed << 13) % mod
seed ^= (seed >> 17) % mod
seed ^= (seed << 5) % mod
return seed
样例解释
序列 为 。
模 的值分别为 。
数据范围
对于 的数据,$0\le m\le 10^5,1\le n\le 10^7,0\le a_1,a_2,\cdots,a_n,seed<2^{32}$。
- Subtask ( 的数据):。
在此 Subtask 中:
有 的数据,满足 。
另有 的数据,满足 。
- Subtask (剩下 的数据):。
提示
请注意空间限制和常数因子对程序运行效率的影响