1.火车头
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize(O2)
#pragma GCC target("avx")
#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")
2.函数前加inline
3.int,long long前加register
4.i++变成++i
5.位运算
6.快读快输(不建议用快输,容易莫名其妙的WA
inline int read(){
re int x(0),y(1);
re char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') y=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<3)+(x<<1)+ch-'0';
ch=getchar();
}
return x*y;
}
inline void write(re int x){
re char F[201];
re int tmp(x>0?x:-x);
if(x<0) putchar('-');
re int cnt(0);
while(tmp>0){
F[++cnt]=tmp%10+'0';
tmp/=10;
}
while(cnt>0){
putchar(F[--cnt]);
}
}
用法:n=read(),write(ans)
以上都是大多数人知道的,那么接下来让我给大家分享点不太常见的卡常技巧吧:
7.i=1改成i(1)
8.开一个数组a[N],N要为奇数(别问我为什么,问就是玄学
9.i-- 改成 --i,i++和++i 改成 i=-~i
10.cout<<endl 改成 cout<<"\n";
11.嫌上面6麻烦可以用cin,cout并加上
std::ios::sync_with_stdio(false)
cin.tie(0);
cout.tie(0);
12.嫌11麻烦也可以用scanf,千万不要用裸的cin,cout!!!
13.不要在循环内定义变量(被卡过就知道有多痛苦
14.return 0;改成exit(0);
说实话,其实就火车头和快读有点儿用,其他的优化不大
好的,那么以上就是这篇题解的内容了,希望能帮助到大家
制作不易,给个赞吧,求求啦(✪ω✪)各位