zoukankan      html  css  js  c++  java
  • 卡常剪贴板

    编译命令优化

    放在代码头部,比赛不可用。

    手动O2优化

    #pragma GCC optimize("O2")
    

    手动O3优化

    #pragma GCC optimize("O3")
    

    三行

    #pragma GCC optimize("O2")
    #pragma GCC optimize("Ofast")
    #pragma GCC optimize("inline")
    

    火车头

    #pragma GCC optimize(2)
    #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")
    

    FastIO

    普通快读

    namespace FastIO
    {
    char c;
    bool sign;
    template<class T>
    inline void read(T &x)
    {
    	x=0;
    	sign=false;
    	for(c=getchar();c<'0'||c>'9';c=getchar()) 
    		if(c=='-') 
    			sign=true;
    	for(;c>='0'&&c<='9';c=getchar())
    		x=(x<<1)+(x<<3)+(c&15);
    	if(sign) x=~x+1;
     	return;
    }
    }
    using FastIO::read;
    

    不建议手写快输,可能比 printf 都慢。

    快读

    1号。

    namespace FastIO
    {
    	const int _SIZE = (1 << 21) + 1;
    	char ibuf[_SIZE],c;
    	char *iS,*iT;
    	bool sign;
    	inline char NextChar()
    	{
    		if(iS==iT) 
    			iS=ibuf,iT=iS+fread(ibuf,1,_SIZE,stdin);
    		return (iS == iT ? EOF : *iS++);
    	}
    	template <class T>
    	inline void read(T &x) 
    	{
    		x=0;
    		sign=false;
    	    for (c=NextChar();c<'0'||c>'9';c=NextChar())
    	        if (c=='-') sign=true;
    	    for (;c>='0'&&c<='9';c=NextChar()) 
    			x=(x<<1)+(x<<3)+(c&15);
    		if(sign) x=-x;
    	}
    }
    using FastIO::read;
    

    2号。

    namespace FastIO
    {
    	const int _SIZE = (1 << 21) + 1;
    	
    	inline char NextChar()
    	{
    		static char ibuf[_SIZE];
    		static char *iS,*iT;
    		
    		if(iS==iT) 
    			iS=ibuf,iT=iS+fread(ibuf,1,_SIZE,stdin);
    		return (iS == iT ? EOF : *iS++);
    	}
    	
    	template <class T>
    	inline void read(T &x) 
    	{
    		static char c;
    		static bool sign;
    		
    		x=0;
    		sign=false;
    	    for (c=NextChar();c<'0'||c>'9';c=NextChar())
    	        if (c=='-') sign=true;
    	    for (;c>='0'&&c<='9';c=NextChar()) 
    			x=(x<<1)+(x<<3)+(c&15);
    		if(sign) x=-x;
    	}
    	
    	char obuf[_SIZE];
    	char *oS=obuf,*oT=obuf+_SIZE-1;
    	inline void flush() 
    	{
    	    fwrite(obuf,1,oS-obuf,stdout);
    	    oS=obuf;
    	}
    	inline void putc(const char &x) 
    	{
    	    *oS++=x;
    	    if(oS==oT) flush();
    	}
    	
    	template <class T>
    	inline void print(T x) {
    		static char qu[50];
    		static int qr;
    		
    	    if (!x) {
    	    	putc('0');
    	    	return;
    		}
    	    if (x<0) putc('-'),x=-x;
    	    for(qr=1;x;qr++,x/=10) qu[qr]=x%10+'0';
    	    for(qr--;qr>=1;qr--) putc(qu[qr]);
    	}
    
    	struct Flusher_ 
    	{
     	   ~Flusher_() { flush(); }
    	}io_flusher_;
    }
    using FastIO::read;
    using FastIO::print;
    #define enter FastIO::putc('
    ')
    

    注意不可以与其他读入方式混用。

    其他

    适当使用关键字

    register 
    inline
    #define
    

    参考文献:

  • 相关阅读:
    python全栈开发_day48_bootstrap
    python全栈开发_day47_js,jQuery
    python全栈开发_day46_html文本标签
    抽象集合
    ViewState的用法
    sql(join中on与where区别)
    微软的技术文档链接地址
    微软的帮助文档,详细的介绍VS开发工具的使用
    [摘录]解决C# DateTime去掉时分秒几种方法
    验证(摘录)
  • 原文地址:https://www.cnblogs.com/cjl-world/p/14067475.html
Copyright © 2011-2022 走看看