取模【先乘后除大法】

A/B关于C取模时,A和B很大时(如组合数,那就需要中间取模了,而除法不能直接取模),这时如果C是素数时,可以使用费马小定理:A * mypow(B,C-2)

而B不是很大时,可以利用先乘后除来进行解决 ,如 a=b*x+c   则 a%b==c  而 a*k=b*x*k+c*k 取模之后 (a*k)%(b*k)==c*k,即当模与数扩大K倍时,余数也扩大了K倍,这也就是说可以先利用乘法将分数化为整数,这样就能对分子的中间进行取模了,在最后再除以K即可得到正确结果。

https://www.nowcoder.com/acm/contest/81/A

 

转载于:https://www.cnblogs.com/MekakuCityActor/p/8898150.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值