论ACM中的mod

算是总结几点mod的坑点吧

A:(a*b)%mod = (a%mod)*(b%mod)%mod

这个性质在a和b是大数的时候是有用的

B:快速幂中,求a^b%mod

C:算是个细节

有的编译器,计算5%3=2;有的算出来5%3=-1

为了避免两种的差别

我们统一用:ans=(ans+mod)%mod

就可以把这个都化成正的最小的那个啦

D:请问:

ans=ans*((n-m+i)*(quickpow(i,mod-2)%mod))%mod;
ans=ans*((n+i-m)*quickpow(i,mod-2)%mod)%mod;

上两行式子有什么区别吗?

第二行是更好的写法!

仔细分析分析,注意括号

发现,第一个式子是先对quick取模的,再乘(n+i-m),再乘ans,可能爆炸int,也可能爆炸long long

第二个式子呢,括号里的两项是对mod取模了,再乘ans,不会出现问题

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 11:47
点赞 评论 收藏
分享
05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务