【模板】各种常用优化

扩栈:

const int main_stack=16;
char my_stack[128<<20];
int main(){
	#ifdef ONLINE_JUDGE
	__asm__("movl %%esp, (%%eax);
"::"a"(my_stack):"memory");
	__asm__("movl %%eax, %%esp;
"::"a"(my_stack+sizeof(my_stack)-main_stack):"%esp");
	#endif
	work();
	#ifdef ONLINE_JUDGE
	__asm__("movl (%%eax), %%esp;
"::"a"(my_stack):"%esp");
	#endif
	return 0;
}

fread:

char buf[1<<20],*pp1,*pp2;
#define GC (pp1==pp2&&(pp2=(pp1=buf)+fread(buf,1,1<<20,stdin),pp1==pp2)?0:*pp1++)
inline int R(){
	char t=GC;int x=0,f=0;
	while(!isdigit(t))f|=t=='-',t=GC;
	while(isdigit(t))x=x*10+t-48,t=GC;
	return f?-x:x;
}

fwrite:

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

4 0 行

#pragma GCC optimize(3)
#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")
Please not contact lydsy2012@163.com!
原文地址:https://www.cnblogs.com/ztc03/p/code.html