Bzoj1951 [Sdoi2010]古代猪文


找到一个总结数论的blog 戳这里

一份很好的题解+代码 -> here

题目大意对于所有n的因子i 求 G^ΣC(n,i) %P   其中 G <= 1e9,N <= 1e9,P=999911659

【分析】

1.有这样一个神奇的公式  A^x = A^(x % Phi(P) + Phi(P)) (mod P)     x>=P

对于C为质数 A^x%P=A^(k*(P-1)+q))%P=(A^(P-1)%P)^k*A^q %P=1^k*A^(x%(P-1))= A^(x%(P-1));

2.所以 现在要求的是 ΣC(n,i)%(P-1) 

3.然后不明觉厉地找题解,委屈看到很多大神一眼看出 999911658=2*3*4679*35617。

4.可以先求出 ΣC(n,i)%2,ΣC(n,i)%3,ΣC(n,i)%4679,ΣC(n,i)%35617, 然后用中国剩余定理合并起来

对于形如 x%ai=bi  且 bi 互质的方程组,

M=πai,

mi=M/ai

mi*ni%ai=1

ans=Σ(mi*ni*bi)

5. 对于C(n,m) n,m>=1e5 可以用Kucas定理:C(n,m)=Lucsa(n,m,P)=C(n%P,m%P)*Lucas(n/p,m/p,p)

特别的 n<m时 lucus(n,m,p)=0 ,m=0 时lucus(n,m,p)=1

6.ORZ csdn 这蛋疼的文本编辑器和这sxbk的验证码

[HINT]

当 G==mo+1 碰巧  ΣC(n,i) %P也等于0时 要输出0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值