其他分享
首页 > 其他分享> > 【笔记】常数研究

【笔记】常数研究

作者:互联网

参考:

题解 CF708E 【Student's Camp】 - 热言热语 的博客 - 洛谷博客 (luogu.com.cn)

取模

inline int _(int a) { return a + (a >> 31 & D); }
inline void Add(int &a, ll b) { a = (a + b) % D; }
inline void Sub(int &a, ll b) { a = _((a - b) % D); }
inline void Div(int &a, int b) { a = (ll)a * fpm(b) % D; }
inline void Mul(int &a, int b) { a = (ll)a * b % D; }

_ 这个函数用于把负数调正。小技巧是在程序中间有些可以将就负数运算的地方不用调正,但是像快速幂的参数就必须调正。

AddSub 的第二个参数是 long long 型,这样就可以在进行 Add(a, (ll)b * c) 这种操作的时候少一次取模。

要把 intlong long 运算的时候不要用 1ll *,直接用 (long long) 强转,会快一些。

一份不错的实践:CF708E Student's Camp

标签:研究,ll,long,int,Add,笔记,inline,常数,void
来源: https://www.cnblogs.com/huaruoji/p/15925821.html