好的,我将这道题整理为清晰的题面格式,并补充样例解释、数据范围与时空限制:
题目描述
曾经发明了脑洞治疗仪与超能粒子炮的发明家 SHTSC 又公开了他的新发明:超能粒子炮・改——一种可以发射威力更加强大的粒子流的神秘装置。
超能粒子炮・改相比超能粒子炮,在威力上有了本质的提升。它有两个参数 n,k,它会向每个编号为 0 到 k(包含两端)的位置 i 发射威力为 Cnimod2333 的粒子流。
现在 SHTSC 给出了他的超能粒子炮・改的参数,让你求出其发射的粒子流的威力之和除以 2333 所得的余数。
即求:
i=0∑kCnimod2333
输入格式
第一行一个整数 t 表示数据组数。
之后 t 行,每行两个整数 n,k,含义如题面描述。
输出格式
t 行,每行一个整数,表示粒子流的威力之和模 2333 的值。
样例
样例输入
3
5 5
10 7
1145 14
样例输出
32
968
763
样例解释
第一组:n=5,k=5
求 C50+C51+C52+C53+C54+C55
=1+5+10+10+5+1=32
32mod2333=32。
第二组:n=10,k=7,计算 C100 到 C107 之和模 2333 得 968。
第三组:n=1145,k=14,计算结果为 763。
数据范围
- 对于 10% 的数据,t=1,n,k≤1000;
- 对于 30% 的数据,t=1,n,k≤106;
- 对于 50% 的数据,t=1,n≤1018,k≤1000;
- 对于 70% 的数据,t=100,n,k≤1018;
- 对于 100% 的数据,t=106,n,k≤1018。
时空限制
- 时间:1000 ms
- 内存:524288 KB
提示
模数 2333 是质数。
设 S(n,k)=∑i=0kCnimod2333。
利用 Lucas 定理将 n,k 按 2333 进制分解:
设 n=n1×2333+n0,k=k1×2333+k0,其中 0≤n0,k0<2333。
有递推式(需推导):
$$S(n,k) = S(n_1, k_1-1) \times S(n_0, 2332) + C_{n_1}^{k_1} \times S(n_0, k_0) \pmod{2333}$$
其中 $S(n_0, 2332) = \sum_{i=0}^{2332} C_{n_0}^i = 2^{n_0} \bmod 2333$(因为 n0<2333,组合数求和等于 2n0)。
预处理 0≤a,b<2333 的所有 Cabmod2333 和 S(a,b),即可 O(log2333n) 递归计算。
t 很大,需要预处理好所有 S(a,b) 表 O(23332) 可接受。