读入/输出模板

就是稍微码下

①读入优化

inline int read() {char c=GT();int u=1,o=0;
    for(;!isdigit(c);c=GT()) if(c=='-')u=-1;
    for(;isdigit(c);o=(o<<3)+(o<<1)+c-'0',c=GT());return o*u;
}

②读入优化

inline int read(int &o) {o=0;char c=GT();int u=1;
    for(;!isdigit(c);c=GT()) if(c=='-')u=-1;
    for(;isdigit(c);o=(o<<3)+(o<<1)+c-'0',c=GT()); o*=u;
}

③输出优化

char pbuf[100000],*pp=pbuf;
void push(const char c) {
    if(pp-pbuf==100000) fwrite(pbuf,1,100000,stdout),pp=pbuf;
    *pp++=c;
}
void write(int x) {
    static int sta[35];
    int top=0;
    do{sta[top++]=x%10,x/=10;}while(x);
    while(top) push(sta[--top]+'0');
}

④输出优化附录(代码末)

fwrite(pbuf,1,pp-pbuf,stdout);
原文地址:https://www.cnblogs.com/sumjune/p/9505242.html