卡常
1.调换搜索顺序
2.调换枚举顺序
3.快读快输
4.位运算
5.循环展开
6.register
7.long long只在必要开
8.函数里在if里return
9.火车头
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
%: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("-fhoist-adjacent-loads") %: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")
10.C++14 -O2
11.map查找不用[],用find()
12.光速幂
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
struct LP{ ll base[N][2];int sq=31700; inline void init(int x){ base[0][0]=base[0][1]=1; for(int i=1;i<=sq;++i) base[i][0]=(i1)base[i-1][0]*x%mod; for(int i=1;i<=sq;++i) base[i][1]=(i1)base[i-1][1]*base[sq][0]%mod; }inline ll power(int x){return (i1)base[x%sq][0]*base[x/sq][1]%mod;} } lp;
13.取模优化
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
struct FastMod{ long long m,p; ll ck(ll x){return x>=p?x-p:x;} void init(ll pp){m=((__int128)1<<64)/pp;p=pp;} friend long long operator%(i1 x,FastMod M){return M.ck(x-(__int128(x)*M.m>>64)*M.p);} }mod;