ACM中有很多小技巧和有趣的写法。虽然无法改变算法的复杂度,但是却可以缩短代码长度、减少寻址时间和冗余状态等等。
在此对写程序的时候一些小技巧以及一些函数的简洁写法进行总结,以后也会不断更新。
当然很多函数它本来就这么短,反正大概我知道的一行函数我都会记下来。
不过很多技巧我只是从实用的角度出发,如果要跟我讨论严谨证明的话,麻烦您。。出门。。左转。。。。Google...
其中可能借鉴了一些大牛的写法,望见谅。
PS:关于位运算优化,强烈大家去看Matrix67的《位运算简介及实用技巧》系列:(一)、(二)、(三)、(四)。
一、简洁写法
1、求逆元
int inv(int x)
{
return x <= 1 ? x : (MOD - MOD / x) * inv(MOD % x) % MOD;
}
// x = 0 时无逆元
inv[1] = 1;
for(int i = 2; i <= n; i ++)
{
inv[i] = (-mod / i) * inv[mod % i];
inv[i] = (inv[i] % mod + mod