• 【模板】各种常用优化


    扩栈:

    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!
  • 相关阅读:
    显示文件本地文件夹
    Select Dependencies选择依赖项
    搜索小技巧
    783. Minimum Distance Between BST Nodes BST节点之间的最小距离
    5. Longest Palindromic Substring 最长的回文子串
    12. Integer to Roman 整数转罗马数字
    3. Longest Substring Without Repeating Characters 最长的子串不重复字符
    539. Minimum Time Difference 最小时差
    43. Multiply Strings 字符串相乘
    445. Add Two Numbers II 两个数字相加2
  • 原文地址:https://www.cnblogs.com/ztc03/p/code.html
Copyright © 2020-2023  润新知