卡常技巧
Posted lates
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卡常技巧相关的知识,希望对你有一定的参考价值。
前言
本文会不定时更新。
快读
这是利用$getchar$来优化
inline int read(){ register int x=0,v=1,ch=getchar(); while(!isdigit(ch)){if(ch==‘-‘)v=-1;ch=getchar();} while(isdigit(ch)){x=(x<<3)+(x<<1)+(ch^‘0‘);ch=getchar();} //与x=x*10+(ch-‘0‘)意义相同 return x*v; }
快写
这是利用$putchar$来优化
void _print(int x){ if(x<10){putchar(x+‘0‘);return;}//小于10就直接输出,return _print(x/10); putchar(x%10+‘0‘);//输出 } inline void print(int x){ if(x<0)putchar(‘-‘),x=-x; //x为负数就变为相反数,输出符号然后进行递归 _print(x); }
其他
可以在每个函数前加上$inline$,在定义前加上$register$等。
以上是关于卡常技巧的主要内容,如果未能解决你的问题,请参考以下文章