zoukankan      html  css  js  c++  java
  • P5454 [THUPC2018]城市地铁规划

    题意

    略。

    分析

    (prufer)序列+(dp)

    代码

    #include<bits/stdc++.h>
    using namespace std;
    template <typename T>
    inline void read(T &x){
    	x=0;char ch=getchar();bool f=false;
    	while(!isdigit(ch)){if(ch=='-'){f=true;}ch=getchar();}
    	while(isdigit(ch)){x=x*10+(ch^48);ch=getchar();}
    	x=f?-x:x;
    	return ;
    }
    template <typename T>
    inline void write(T x){
    	if(x<0) putchar('-'),x=-x;
    	if(x>9) write(x/10);
    	putchar(x%10^48);
    	return ;
    }
    #define ll long long
    const int N=3005,MOD=59393;
    int n,m,sum;
    int dp[N],pre[N],a[N],w[N],d[N],cnt;
    int pru[N],fa[N];
    inline int inc(int x,int y){int tmp=x+y;return tmp>=MOD?tmp-MOD:tmp;}
    void PrufertoTree(){
    	for(int i=1;i<=n-2;i++) d[pru[i]]++;pru[n-1]=n;
    	for(int i=1,now=1;i<=n-1;i++,now++){
    		while(d[now]) now++;
    		fa[now]=pru[i];
    		while(i<n-1&&!--d[pru[i]]&&pru[i]<now) fa[pru[i]]=pru[i+1],i++;
    	}
    	return ;
    }
    signed main(){
    	read(n),read(m);sum=(n-1)<<1;
    	for(int i=0;i<=m;i++) read(a[i]);
    	for(int i=0;i<=n;i++){
    		for(int j=m;j>=0;j--){
    			w[i]=inc(w[i]*i%MOD,a[j]);
    		}
    	}
    	dp[0]=n*w[1];
    	for(int i=2;i<=n;i++){
    		for(int j=i-1;j<=n-2;j++){
    			if(dp[j-i+1]+w[i]-w[1]>dp[j]){
    				pre[j]=j-i+1;
    				dp[j]=dp[j-i+1]+w[i]-w[1];
    			}
    		}
    	}
    	write(n-1),putchar(' '),write(dp[n-2]),putchar('
    ');
    	int now=n-2;
    	while(now-pre[now]>0) d[++cnt]=now-pre[now],now=pre[now];
    	for(int i=1,j=1;i<=cnt;i++) while(d[i]--) pru[j++]=i;memset(d,0,sizeof(d));
    	PrufertoTree();
    	for(int i=1;i<=n-1;i++) write(i),putchar(' '),write(fa[i]),putchar('
    ');
    	return 0;
    }
    
  • 相关阅读:
    数组相似性计算
    关于GANs原论文里的数学证明
    Python 画个图
    Golang脱坑指南: goroutine(不断更新)
    Java面试细节整理(不断更新)
    从统计看机器学习(二) 多重共线性的一些思考
    从统计看机器学习(一) 一元线性回归
    数据库存储技术基础(一) 字典编码
    JVM内存管理笔记
    R语言rank函数详细解析
  • 原文地址:https://www.cnblogs.com/Akmaey/p/15032144.html
Copyright © 2011-2022 走看看