• 学术代码模板


    快速读入模板

    inline long long read(){
        long long s=0,f=1;
        char ch=getchar();
        while((ch<'0'||ch>'9')&&ch!=EOF){
            if(ch=='-') f=-1;
            ch=getchar();
        }
        while(ch>='0'&&ch<='9'){
            s=s*10+ch-'0';
            ch=getchar();
        }
        return s*f;
    }
    

    快速输出模板

    char f[200] ;
    inline void prt(long long x)
    {
        long long tmp=x>0?x:-x;
        if(x<0)putchar('-');
        long long cnt=0;
        while(tmp>0)
    	{
            f[cnt++]=tmp%10+'0';
            tmp/=10;
        }
        while(cnt>0)putchar(f[--cnt]);
    }
    

    快速幂

    int quickpow(int a,int b){
        int s=1;
        while(b){
            if(b&1)s=(s*a)%mod;
            a=(a*a)%mod;
            b>>=1;
        }
        return s%mod;
    }
    

    无优化SPFA模板

    #include<bits/stdc++.h> 
    using namespace std;
    long long dist[10100],u[500001],v[500001],w[500001],n,m,s,c;
    #define MAXN 2147483647;
    int main()
    {
        cin>>n;
        cin>>m;
        cin>>s;
        for(register int i=1;i<=m;i++){
        	cin>>u[i];
    		cin>>v[i];
    		cin>>w[i]; 
        }
        for(int i=1;i<=n;i++){
        	dist[i]=MAXN;
    	}
        dist[s]=0;
        for(int k=1;k<=n-1;k++){
            c=0;
            for(int i=1;i<=m;i++)if(dist[v[i]]>dist[u[i]]+w[i]){
                dist[v[i]]=dist[u[i]]+w[i];
                c=1;
            }
            if(!c)break;
        }
        for(int i=1;i<=n;i++)printf("%lld ",dist[i]);
        return 0;
    }
    

    单调队列处理模板

    #include<bits/stdc++.h>
    using namespace std;
    int n,m;
    int q1[1000001],q2[1000001];
    int a[1000001];
    int minque(){
        int h=1,t=0;
        for(int i=1;i<=n;i++){
            while(h<=t&&q1[h]+m<=i)h++;
            while(h<=t&&a[i]<a[q1[t]])t--;
            q1[++t]=i;
            if(i>=m) printf("%d ",a[q1[h]]);
        }
        cout<<endl;
    }
    int maxque(){
        int h=1,t=0;
        for(int i=1;i<=n;i++){
            while(h<=t&&q2[h]+m<=i) h++;
            while(h<=t&&a[i]>a[q2[t]]) t--;
            q2[++t]=i;
            if(i>=m) printf("%d ",a[q2[h]]);
        }
    }
    int main(){
        cin>>n>>m;
        for(int i=1;i<=n;i++)scanf("%d",&a[i]);
        minque();
        maxque();
        return 0;
    }
    

    无优化Dijkstra模板

    #include<bits/stdc++.h>
    #define MAXN 0x7fffffff
    using namespace std;
    int dist[5001],n,m,edge[5001][5001],minn,idx,s;
    bool vis[5001];
    void dijkstra(){
    	for(int j=1;j<n;++j){
    		minn=MAXN;
    		for(int i=1;i<=n;i++){
    			if(!vis[i]&&dist[i]<minn){
    				minn=dist[i];
    				idx=i;
    			}
    		}
    		vis[idx]=1;
    		for(int i=1;i<=n;i++){
    			if(edge[idx][i]!=MAXN){
    				int t=edge[idx][i]+dist[idx];
    				if(dist[i]>t)dist[i]=t;
    			}
    		}
    	}
    }	
    int main()
    {
    	cin>>n>>m>>s;
    	for(int i=1;i<=n;i++)for(int j=1;j<=n;++j){
    		if(i!=j)edge[i][j]=MAXN;
    	}
    	for(int i=0;i<m;i++){
    		int x,y,len;
    		cin>>x>>y>>len;
    		edge[x][y]=len;
    	}
    	for(int i=1;i<=n;++i){
    		dist[i]=edge[s][i];
    	}
    	vis[s]=1;
    	dijkstra();
    	for(int i=1;i<=n;i++)cout<<dist[i]<<' ';
    	return 0;
    }
    

    并查集模板

    inline int find(int x){
        while(x!=fa[x]){
          x=fa[x];
          fa[x]=fa[fa[x]];
        }
        return x;
    }
    inline void merge(int v,int u) {
        int t1,t2;
        t1=find(v);
        t2=find(u);
        if(t1!=t2)fa[t2]=t1;
    }
    inline void init(){
      for(i=1;i<=n;i++)fa[i]=i;
    }
    

    手写快排模板

    void qsort(int l,int r){
        int mid=a[(l+r)/2];
        int i=l,j=r;
        do{
            while(a[i]<mid)i++;
            while(a[j]>mid)j--;
            if(i<=j){
                swap(a[i],a[j]);
                i++;
                j--;
            }
        }while(i<=j);
        if(l<j)qsort(l,j);
        if(i<r)qsort(i,r);
    }
    

    优化八聚氧

    #pragma GCC optimize(1)
    #pragma GCC optimize(2)
    #pragma GCC optimize(3)
    #pragma GCC optimize(3,"Ofast","inline")
    %: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")
    
  • 相关阅读:
    Python split分割字符串
    test markdown
    Python 数字格式转换
    Python 字符串改变
    Python axis的含义
    python 第三方库
    Spark快速入门
    vim快捷键
    Hadoop HDFS负载均衡
    YARN DistributedShell源码分析与修改
  • 原文地址:https://www.cnblogs.com/jiupinzhimaguan/p/12466453.html
Copyright © 2020-2023  润新知