俗话说的好,心中有党,常数极小。
1、循环中加寄存器优化for(register int i;i<=n;i++){}
好像在开O2时这个没什么用。
2、函数前inline int f(int x){}
当调用函数本身的时间长度比执行函数的更长时效果会更显著。配合read()、write()使用更佳。
3、将取模运算改成if(x>=mod)x-=mod
取模运算常数极大。但要注意这只适用于当x增加的量不大于mod时。
4、将i++改为++i
5、循环展开for(int i=1;i<=n;i+=2){}
据说是内存访问更优了,总之很玄学。
6、读入/输出单个字符用putchar(),getchar()
7、少用指针
7.5、说到指针,可以用while(1){new int;}报效(复)社会
8、少用bool
9、将x*2改为x<<1,将x/2改为x>>1
位运算会快一些,但要注意加括号。