论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,不会出现问题