关于这两份快读的时间差
  • 板块灌水区
  • 楼主under_hole
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/7/27 09:24
  • 上次更新2024/7/27 10:55:02
查看原帖
关于这两份快读的时间差
1291460
under_hole楼主2024/7/27 09:24

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{10}^{6}左右。

2024/7/27 09:24
加载中...