zoukankan      html  css  js  c++  java
  • head

    head

    #include<bits/stdc++.h>
    using namespace std;
    #define rep(i,a,b) for(int i=(a),i##_end=(b);i<=i##_end;++i)
    #define per(i,a,b) for(int i=(b),i##_end=(a);i>=i##_end;--i)
    #define For(i,a,b) for(int i=(a),i##_end=(b);i<i##_end;++i)
    #define foe(i,a) for(__typeof(a.begin())i=a.begin();i!=a.end();++i)
    #define X first
    #define Y second
    #define mp make_pair
    #define pb push_back
    #define SZ(x) ((int)(x).size())
    #define all(x) (x).begin(),(x).end()
    typedef double ld;
    typedef long long L;
    typedef vector<int> VI;
    typedef pair<int,int> pa;
    
    #include<bits/stdc++.h>
    using namespace std;
    #define rep(i,a,b) for(int i=(a),i##_end=(b);i<=i##_end;++i)
    #define per(i,a,b) for(int i=(b),i##_end=(a);i>=i##_end;--i)
    #define For(i,a,b) for(int i=(a),i##_end=(b);i<i##_end;++i)
    #define foe(i,a) for(__typeof(a.begin())i=a.begin();i!=a.end();++i)
    #define X first
    #define Y second
    #define mp make_pair
    #define pb push_back
    #define SZ(x) ((int)(x).size())
    #define all(x) (x).begin(),(x).end()
    #define Es(x,i) for(Edge *i=G[x];i;i=i->nxt)
    typedef double ld;
    typedef long long L;
    typedef long double lf;
    typedef unsigned int uint;
    typedef unsigned long long uL;
    typedef pair<int,int> pii;
    const int inf=0x3f3f3f3f,mo=1e9+7;
    template<typename A,typename B>inline bool upmx(A&x,const B&y){return x<y?x=y,1:0;}
    template<typename A,typename B>inline bool upmn(A&x,const B&y){return x>y?x=y,1:0;}
    template<typename T>inline T gcd(T x,T y){for(;y;swap(x,y))x%=y;return x;}
    inline int Pow(int a,int b,int p=mo){int r=1;for(;b;b>>=1,a=1ll*a*a%p)if(b&1)r=1ll*r*a%p;return r;}
    #ifdef flukehn
    #define debug(...) fprintf(stderr, __VA_ARGS__)
    #else
    #define debug(...)
    #endif
    char *TT,*tmo,but[(1<<15)+2];
    #define getc() ((TT==tmo&&(tmo=((TT=but)+fread(but,1,1<<15,stdin)),TT==tmo))?-1:*TT++)
    inline int rd(){
      int x,c,f=1;while(!isdigit(c=getc()))f=c!='-';x=c-'0';
      while(isdigit(c=getc()))x=x*10+c-'0';return f?x:-x;
    }
    

    fast_i

    char *TT,*tmo,but[(1<<15)+2];
    #define getchar() ((TT==tmo&&(tmo=((TT=but)+fread(but,1,1<<15,stdin)),TT==tmo))?-1:*TT++)
    
    template<typename T>inline bool upmx(T&a,const T&b){return a<b?a=b,1:0;}
    template<typename T>inline bool upmn(T&a,const T&b){return a>b?a=b,1:0;}
    template<typename T>inline T gcd(T a,T b){while(b)a%=b,swap(a,b);return a;}
    

    mcfx_io
    mcfx

    frw

    struct Frw{
      char *TT,*tmo,but[(1<<15)+2],butt[(1<<15)+2],*bp,*bq;
      Frw(){bp=butt,bq=butt+(1<<15);}
      ~Frw(){fwrite(butt,1,bp-butt,stdout);}
      #define getc() ((TT==tmo&&(tmo=((TT=but)+fread(but,1,1<<15,stdin)),TT==tmo))?-1:*TT++)
      #define RX {char c,f=1;while(!isdigit(c=getc()))f=c!='-';x=c-'0';
        while(isdigit(c=getc()))x=x*10+c-'0';return f?x:-x;}
      inline operator int(){int x;RX;}
      inline void pr(char x){*bp=x;(++bp==bq)?fwrite(butt,1,1<<15,stdout),bp=butt:0;}
      inline void operator ()(int x){
        if(!x)return pr('0');
        if(x<0)pr('-'),x=-x;
        static int s[12];int p=0;
        while(x)s[p++]=x%10,x/=10;
        for(int i=p-1;~i;--i)pr(s[i]+'0');
      }
    }it;
    

    fast_o

    char butt[(1<<15)+2],*bp=butt,*bq=butt+(1<<15);
    inline void pr(char x){
    	*bp=x;(++bp==bq)?fwrite(butt,1,1<<15,stdout),bp=butt:0;
    }
    inline void write(int x){
    	if(!x)pr('0');
    	else{
    		if(x<0)pr('-'),x=-x;
    		static int s[12];
    		int p=0;
    		while(x)s[p++]=x%10,x/=10;
    		for(int i=p-1;~i;--i)pr(s[i]+'0');
    	}
    }
    

    rand

    struct Rand{
    	Rand(){srand(time(0));}
    	operator int(){return (rand()<<15)^rand();}
    	operator ll(){ll a=rand(),b=rand(),c=rand(),d=rand();return (a<<45)^(b<<30)^(c<<15)^d;}
    }_r;
    

    math

    namespace Math{
    	inline ll mul(ll n,ll m,ll p){ll r=0;for(;m;m>>=1,n=(n+n)%p)if(m&1)r=(r+n)%p;return r;}
    	inline int pw(int n,int m,int p){int r=1;for(;m;m>>=1,n=(ll)n*n%p)if(m&1)r=(ll)r*n%p;return r;}
    	inline ll pwl(ll n,ll m,ll p){ll r=1;for(;m;m>>=1,n=mul(n,n,p))if(m&1)r=mul(r,n,p);return r;}
    	const int pri[] = {2, 325, 9375, 28178, 450775, 9780504, 1795265022};
    	inline bool isp_bf(ll n){
    		if(n<2)return 0;
    		if(n==2)return 1;
    		for(ll i=2;i*i<=n;++i){
    			if(n%i==0)return 0;
    		}
    		return 1;
    	}
    	inline bool Miller_rabin(ll n){
            ll q=n-1;int y=0;
    		while(!(q&1))q>>=1,++y;
    		For(i,0,7){
    			ll x=pwl(pri[i],q,n);
    			For(_,0,y){
    				ll t=mul(x,x,n);
    				if(t==1){
    					if(x!=1&&x!=n-1)return 0;
    					else{x=1;break;}
    				}
    				x=t;
    			}
    			if(x!=1)return 0;
    		}
    		return 1;
        }
    	inline bool isp(ll n){
    		if(n>2&&!(n&1))return 0;
    		if(n<=1000)return isp_bf(n);
    		else return Miller_rabin(n);
    	}
    }
    

    head2:

    #define I inline
    #define OP operator
    #define RT return *this
    I bool IS(char x){return x==10||x==13||x==' ';}
    struct Cg{I char OP()(){return getchar();}};struct Cp{I void OP()(char x){putchar(x);}};
    #define RX char c,f=1;while(!isdigit(c=P()))f=c!='-';x=c-'0';while(isdigit(c=P()))x=x*10+c-'0';x=f?x:-x
    #define TR *this,x;return x
    struct Fr{Cg P;I Fr&OP,(int&x){RX;RT;}I OP int(){int x;TR;}I Fr&OP,(ll &x){RX;RT;}I OP ll(){ll x;TR;}
    I Fr&OP,(char&x){while(IS(x=P()));RT;}I OP char(){char x;TR;}
    I Fr&OP,(char*x){char t=P();for(;IS(t);t=P());if(~t){for(;!IS(t)&&~t;t=P())*x++=t;}*x++=0;RT;}}in;
    #define WI if(x){if(x<0)P('-'),x=-x;char s[22],c=0;while(x)s[c++]=x%10+'0',x/=10;while(c--)P(s[c]);}else P('0')
    struct Fw{Cp P;I Fw&OP,(int x){WI;RT;}I Fw&OP,(ll x){WI;RT;}I Fw&OP,(char x){P(x);RT;}
    I Fw&OP,(const char *x){while(*x)P(*x++);RT;}}out;
    
  • 相关阅读:
    准备 FRM 考试——方法、工具与教训
    930. 和相同的二元子数组 前缀和
    1906. 查询差绝对值的最小值 前缀和
    剑指 Offer 37. 序列化二叉树 二叉树 字符串
    815. 公交路线 BFS
    518. 零钱兑换 II dp 完全背包
    1049. 最后一块石头的重量 II dp
    5779. 装包裹的最小浪费空间 二分
    5778. 使二进制字符串字符交替的最少反转次数 字符串 滑动窗口
    474. 一和零 dp
  • 原文地址:https://www.cnblogs.com/flukehn/p/7742959.html
Copyright © 2011-2022 走看看