博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

读入优化模板

存个模板,以后直接copy懒得敲……


不带负数:
int read_p,read_ca;
inline int read(){
    read_p=0;read_ca=getchar();
    while(read_ca<'0'||read_ca>'9') read_ca=getchar();
    while(read_ca>='0'&&read_ca<='9') read_p=read_p*10+read_ca-48,read_ca=getchar();
    return read_p;
}

带负数:

int read_p,read_ca,read_f;
inline int read(){
    read_p=0;read_ca=getchar();read_f=1;
    while(read_ca<'0'||read_ca>'9') {if (read_ca=='-') read_f=-1;read_ca=getchar();}
    while(read_ca>='0'&&read_ca<='9') read_p=read_p*10+read_ca-48,read_ca=getchar();
    return read_p*read_f;
}

 

区分出来是因为不带负数跑得稍微快一些……(稍微

用奇奇怪怪的变量名是为了不与主程序其他变量冲突。

 

输出优化(其实作用不大):

int pr_num,pr_ch[1000];
inline void pr(long long k){
    pr_num=0;
    while(k>0) pr_ch[++pr_num]=k%10,k/=10;
    while(pr_num)
    putchar(pr_ch[pr_num--]+48);
    putchar('\n');
}

 

fread、fwrite

char ibuf[20000004],*iptr=ibuf-1,C;
inline int _(){
    int x=0,c=*++iptr;
    while(c<48)c=*++iptr;
    while(c>47)x=x*10+c-48,c=*++iptr;
    return x;
}

ibuf[fread(ibuf,1,20000000,stdin)]=0;
char obuf[5000000],*optr=obuf;
inline void _(int x){
    static int stk[32],stp=0;
    if(!x)stk[stp++]=0;
    while(x)stk[stp++]=x%10,x/=10;
    while(stp)*(optr++)=stk[--stp]+48;
    *(optr++)=10;
}
fwrite(obuf,1,optr-obuf,stdout);

 

 

编译优化(来自https://www.cnblogs.com/qqq1112/p/11226466.html

#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
View Code

 

posted @ 2016-03-25 21:04  swm_sxt  阅读(398)  评论(0编辑  收藏  举报