一些常见的简单优化
1:输入优化
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
namespace io{
const ll BUFSIZE=1<<20;
char ibuf[BUFSIZE],*is=ibuf,*it=ibuf;
char obuf[BUFSIZE],*os=obuf,*ot=obuf+BUFSIZE;
inline char getch(){
if(is==it)it=(is=ibuf)+fread(ibuf,1,BUFSIZE,stdin);
return (is==it)?EOF:*is++;
}
inline ll read(){
ll res=0;bool neg=false;char ch=getch();
while(!(isdigit(ch)||ch=='-')&&ch!=EOF)ch=getch();
if(ch=='-')neg=true,ch=getch();
while(isdigit(ch))res=res*10+(ch-'0'),ch=getch();
return neg?-res:res;
}
inline void flush(){
fwrite(obuf,1,os-obuf,stdout);
os=obuf;
}
inline void putch(char ch){
*os++=ch;
if(os==ot)flush();
}
inline void write(ll res){
char q[25];ll top;
if(res<0)putch('-'),res=-res;
if(res==0)putch('0');
top=0;
while(res)q[top++]=res%10+'0',res/=10;
while(top--)putch(q[top]);
}
}
2:O2优化
#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")/*................@@@@@@@@@@@OOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..............................| $$ \ $$.....................................*/
#pragma GCC optimize("-falign-jumps")/*..............@@@@@@@@@@OOOooooooooooooooOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..............................| $$ | $$.....................................*/
#pragma GCC optimize("-falign-loops")/*..............@@@@@@@@OOOoooooooooooooOooooOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@..............................| $$$$$$/.....................................*/
#pragma GCC optimize("-falign-labels")/*.............@@@@@@@@OOOooooooooooooooooooOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@^..............................\______/.......................................*/
#pragma GCC optimize("-fdevirtualize")/*.............\@@@@@@@OOOooooooOoooOoooooooOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@^.............................................................................*/
#pragma GCC optimize("-fcaller-saves")/*.............,@@@@@@OOOOooooooooooooooooooOOoooooOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@....................................../$$.....................................*/
#pragma GCC optimize("-fcrossjumping")/*..............=@@@@@OOOOoooooooooooooooOooOooooooOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@.....................................|.$$.....................................*/
#pragma GCC optimize("-fthread-jumps")/*................\@@OOOOOOOoooooOOoooooOOOooooooOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@................................../$$$$$$$.....................................*/
#pragma GCC optimize("-funroll-loops")/*..................@OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@^................................./$$__ $$.....................................*/
#pragma GCC optimize("-fwhole-program")/*.................@OOOO@@@@@@@@@@@@@@@OOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.................................| $$..| $$.....................................*/
#pragma GCC optimize("-freorder-blocks")/*..............]@@OOO@@OOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..................................| $$..| $$.....................................*/
#pragma GCC optimize("-fschedule-insns")/*.............OOOOOOOOOOOOOO@@@@@@@@@@@@OO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\..............................| $$$$$$$......................................*/
#pragma GCC optimize("inline-functions")/*............=@@@@@@OOO@@@@@@@@@@@@@@@@@OO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\.............................\_______/......................................*/
#pragma GCC optimize("-ftree-tail-merge")/*...........=@@@@@@OOOOOOOO@@@@@@@OOO@@OO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@............................................................................*/
#pragma GCC optimize("-fschedule-insns2")/*...........=@OO@@OOOOOOOOOOOOOO@OOO@@OOOO@@@@@@OOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@............................................................................*/
#pragma GCC optimize("-fstrict-aliasing")/*...........OOOOOOOOOOOOOOOOO@OOOOOOOooOOO@@@@@@OOO@@@@@OO@@@@@@@@@@@@@@@@@@@^.............................................................................*/
#pragma GCC optimize("-fstrict-overflow")/*............=OOOOOOOoooOOOOOOOOOOOOOoooOOOO@@@@@@OOOOOOOOO@@@@@@@@@@@@@@@@@@/.............................................................................*/
#pragma GCC optimize("-falign-functions")/*.............OOOOOOOOoOOOOOOOOOOOOOOoooOOO@@@@@@OOOOOOOOOOO@@@@@@@@@@@@@@@@@`.............................................................................*/
#pragma GCC optimize("-fcse-skip-blocks")/*.............=OOOOOOOoooOOOOOOOOOOoooooOOO@@@@@@@OOOOOOOOO@@@@@@@@@@@@@@@@@@..............................................................................*/
#pragma GCC optimize("-fcse-follow-jumps")/*.............OOOOOOOoooooooOOOOOoOOOOOO@@@@@@@@@OOOOOOOOO@@@@@@@@@@@@@@@@@`..............................................................................*/
#pragma GCC optimize("-fsched-interblock")/*.............OOOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@OOOOO@@@@@@@@@@@@@@@@@[................................................................................*/
#pragma GCC optimize("-fpartial-inlining")/*.............@@OOOOOOOOOOOOOoooOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`..................................................................................*/
#pragma GCC optimize("no-stack-protector")/*..............\OOOOOOOOOOOOoooooooOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@/...................................................................................*/
#pragma GCC optimize("-freorder-functions")/*..............OOOOOOOOOOOOOoooOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@^...................................................................................*/
#pragma GCC optimize("-findirect-inlining")/*..............OOOOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@O....................................................................................*/
#pragma GCC optimize("-fhoist-adjacent-loads")/*...........=OOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^....................................................................................*/
#pragma GCC optimize("-frerun-cse-after-loop")/*...........,OOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.....................................................................................*/
#pragma GCC optimize("inline-small-functions")/*............OOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@^.....................................................................................*/
#pragma GCC optimize("-finline-small-functions")/*..........,OOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`.....................................................................................*/
#pragma GCC optimize("-ftree-switch-conversion")/*...........=OOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^......................................................................................*/
#pragma GCC optimize("-foptimize-sibling-calls")/*............\@OOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@.......................................................................................*/
#pragma GCC optimize("-fexpensive-optimizations")/*............,OOOOOOOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@/.......................................................................................*/
#pragma GCC optimize("-funsafe-loop-optimizations")/*............\@@@OOOOOOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@\.......................................................................................*/
#pragma GCC optimize("inline-functions-called-once")/*............,O@@OOOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^O.....................................................................................*/
#pragma GCC optimize("-fdelete-null-pointer-checks")/*..............\OOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\....................................................................................*/
#pragma comment(linker, "/STACK:102400000,102400000")/*.............=OOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOO\`.................................................................................*/
#pragma GCC diagnostic error "-std=c++11"/*........................,OOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOO\................................................................................*/
#pragma GCC -mcmodle=large/*.......................................oO@OOOOOOOOOO@@@@@@@@@@@@@@@@@@@@@@@@@@@@OOOOOOOO@\...............................................................................*/
暂时就更到这吧,以后有知道啥好用的再加