在一些题目中,有的程序会被卡常(数),就是说,程序虽然渐进复杂度,(通俗来讲,算法的时间复杂度)可以接受,但因为算法本身的时间常数过大,导致程序在一些算法竞赛中超时。这是,快读就显得尤为重要了。
当然,如果程序算法本身就不高效,快读就更加重要了,可以让一些
快速读入可以让大家的输入更快
#include <cstdio>
#include <ctime>
#include <iostream>
#define LOOP 3
#define DATA 10000
inline int Readi(){
int x;
int fh=1;
char a=getchar();
while(‘0‘>a || ‘9‘<a){
if(a==‘-‘) fh=-1;
a=getchar();
}
while(‘0‘<=a && a<=‘9‘){
x=x*10+a-‘0‘;
a=getchar();
}
return x*fh;
}
void TryPrint(){
FILE* fp=fopen("in.txt","w");
for(int i=1;i<=DATA;++i)fprintf(fp,"%d ",i);
fclose(fp);
}
void TryReadi(){
int t;for(int i=1;i<=DATA;++i){
t=Readi();
}
}
void TryReads(){
int t;for(int i=1;i<=DATA;++i)scanf("%d",&t);
}
void TryReadc(){
int t;for(int i=1;i<=DATA;++i){
std::cin>>t;
}
}
int main(){
for(int k=1;k<=LOOP;++k){
TryPrint();clock_t p=clock();
freopen("in.txt","r",stdin);
TryReadi();clock_t i=clock();
TryReads();clock_t s=clock();
freopen("out.txt","a+",stdout);
printf("快读:%u\n",i-c);
printf("scanf输入:%u\n",s-c);
}
return 0;
}
原文地址:https://www.cnblogs.com/cdsidi/p/11269232.html