读入优化:
C++自带的 scanf 已经很快了,但是100W的数据要0.6~0.8s,很明显,还是慢了。
为什么?因为 scanf 带了许多厉害但是我们不需要的的特判。
于是,读入优化应运而生:
inline int read()
{
int date=0,w=1;char c=0;
while(c<'0'||c>'9'){if(c=='-')w=-1;c=getchar();}
while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();}
return date*w;
}
调用时,只需要:
int x;
x=read();
即可。
输出优化:
有读入优化,就有输出优化:
inline void write(int x)
{
if(x<0){putchar('-');x=-x;}
if(x>9)write(x/10);
putchar(x%10+'0');
}
调用时,只要:
int x=10;
write(x);
即可。
时间大幅降低!
额,好像也没有快多少,但至少快了。
还有更快的!带缓冲的快读
感谢提醒,正在学习中
Orz %%%