用以下代码读入整形数据,将会让读入时间变得更短。
inline int read()
{
int data=0;
char ch=0;
while (ch<'0' || ch>'9') ch=getchar();
while (ch>='0' && ch<='9') data=data*10+ch-'0',ch=getchar();
return data;
}
如果读入负数的话,那么下列代码给出很好的解决办法。
inline int read()
{
int p,data=0;
char ch=0;
while ((ch!='-') && ch<'0' || ch>'9') ch=getchar();
if (ch=='-')
{
p=-1;
ch=getchar();
} else p=1;
while (ch>='0' && ch<='9') data=data*10+ch-'0',ch=getchar();
return data*p;
}
假如说你要读入整形数n,那么可以这样调用:
n=read();
这样速度将会大大加快。
比如说线段树模板,当N=100000时,不加读入优化72ms,加了读入优化后60ms。