卡常技巧

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$等。

 

以上是关于卡常技巧的主要内容,如果未能解决你的问题,请参考以下文章

卡常技巧

卡常小技巧

卡常技巧

卡常技巧

CodeForces 327E Axis Walking(状压DP+卡常技巧)

Android课程---Android Studio使用小技巧:提取方法代码片段