并不对劲的卡常技巧

俗话说的好,心中有党,常数极小。

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

位运算会快一些,但要注意加括号。

 

转载于:https://www.cnblogs.com/xzyf/p/8343381.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值