rt,今天在做题时使用了这样一份快读:
inline long long read(){
char c=getchar();
long long val=0,f=1;
while(c<'0'||c>'9'){
if(c=='-')f=-1;
c=getchar();
}
while('0'<=c&&c<='9'){
val=(val<<3)+(val<<1)+c-'0';
c=getchar();
}
return val*f;
}
然而20个点全TLE了(总用时44s...)QAQ
后来换了这份快读,跑的好快(总用时895ms)
inline char gc(){
static char buf[1<<16],*p1=buf,*p2=buf;
if(p1==p2){
p2=(p1=buf)+fread(buf,1,1<<16,stdin);
if(p1==p2)return EOF;
}
return *p1++;
}
template<typename _Tp>
inline void fastread(_Tp &x){
x=0;
char c=gc();
while(!isdigit(c))c=gc();
while(isdigit(c))x=x*10-48+c,c=gc();
}
请问各位大佬,这两份快读真的差距那么大吗QAQ
题目输入量在106左右。