zoukankan      html  css  js  c++  java
  • bzoj4033: [HAOI2015]树上染色

    题目链接

    bzoj4033: [HAOI2015]树上染色

    题解

    对与每条边贡献dp,树形背包
    然后开始写成了每条边对于子树的贡献,然后写挂了别的地方,然后lg上莫名其妙的过了许多别的点
    然后发现似乎神奇的性质...有空出道题2333
    bzoj有些卡常数

    代码

    #include<cstdio>
    #include<cstring> 
    #include<algorithm> 
      
    #define LL long long 
    int n,K; 
    const int maxn = 2007; 
    struct node { 
        int v,w,next; 
    } edge[maxn << 1]; 
    int num = 0,head[maxn],size[maxn];  
    inline void add_edge(int u,int v,int w) { 
        edge[++ num].v = v,edge[num].next = head[u];edge[num].w = w; head[u] = num; 
    }  
    LL dp[maxn][maxn];  
    void dfs(int x,int fa) {  
        size[x] = 1;dp[x][0] = dp[x][1] = 0; 
        for(int i = head[x];i;i = edge[i].next) { 
            int v = edge[i].v; 
            if(v == fa) continue;  dfs(v,x); size[x] += size[v]; 
        } 
        for(int i = head[x];i;i = edge[i].next) { 
        int v = edge[i].v; 
            if(v == fa)continue; 
            for(int j = std::min(size[x],K);j >= 0;-- j) { 
            for(int k = 0;k <= std::min(j,size[v]);++ k) {
                        if(dp[x][j - k] >= 0) {
                        LL tmp = (LL)k * (K - k) * edge[i].w + (LL)(n - K - (size[v] - k)) * (size[v] - k) * edge[i].w;         
                        dp[x][j] = std::max(dp[x][j - k] + dp[v][k] + tmp,dp[x][j]);   
                }    
            } 
            } 
        } 
    } 
    int main() { 
        memset(dp,-1,sizeof dp); 
        scanf("%d%d",&n,&K); 
        for(int u,v,w,i = 1;i < n;++ i) { 
            scanf("%d%d%d",&u,&v,&w);
            add_edge(u,v,w);
            add_edge(v,u,w); 
        } 
        dfs(1,0); 
        printf("%lld
    ",dp[1][K]); 
        return 0; 
    } 
    
  • 相关阅读:
    工具类网站收藏
    NodeJS 后端 解决 OPTIONS 请求 404 (Not Found)
    Linux scp 指令
    API及工具类页面链接
    JavaScript正则
    Git 常用
    React组件属性类型(propTypes)
    Meta http-equiv属性详解(转)
    js 刷新页面window.location.reload();
    XHTML标签的嵌套规则分析
  • 原文地址:https://www.cnblogs.com/sssy/p/9091566.html
Copyright © 2011-2022 走看看