转载请说明出处:http://blog.csdn.net/leader_one/article/details/78430083
首先
常数是个谜,卡常是件很烦的事,被常数坑死的OIer已经不少了
常数不可避免,但是可以理性地去优化
当时间复杂度已经难以优化时,考虑常数优化
C++一些常数常见坑
I/O读入和输出
如果量小倒也没什么,如果大规模读入或者输出,C++自带的方式是很慢的
->首先,拒绝cin/cout,实在是太慢了,受不了
->接着scanf/printf,较慢,中小规模是可以的,但是百万级的I/O常数影响就大了
->所以考虑读入输出优化,百万级的I/O可以和scanf/printf相差0.X秒,和cin/cout则有几秒差距
以int类型为例
inline int read()
{
int X=0,w=1; char ch=0;
while(ch<'0' || ch>'9') {if(ch=='-') w=-1;ch=getchar();}
while(ch>='0' && ch<='9') X=(X<<3)+(X<<1)+ch-'0',ch=getchar();
return X*w;
}
这是读入,利用getchar()来进行字符读入是比较快的