zoukankan      html  css  js  c++  java
  • 【模板】各种常用优化

    扩栈:

    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!
  • 相关阅读:
    i=i+2 与i+=2
    如何浏览github上所有的公开的项目?
    在ubuntu怎样修改默认的编码格式
    链式结构实现堆排序
    直接插入排序的哨兵的作用
    lk进kernel
    比劫劫财引发的灾如何化解呢?
    java:Map借口及其子类HashMap二
    java:Map借口及其子类
    java:集合输出之foreach输出三
  • 原文地址:https://www.cnblogs.com/ztc03/p/code.html
Copyright © 2011-2022 走看看