hdu5534 Partial Tree(dp)

原创 2016年08月30日 10:39:34

hdu5534

题目

就是给你n个点,要连n-1条边形成一棵树,最后有个cool值,cool值是所有节点的f值的和,f值与节点的度数有关,具体f1~fn-1事先都已经给出。

思路

不用考虑图上的东西,从度考虑,每个点至少1个度,总共2n-2个度,所以要分派n-2个度,dp[i]表示分配了i个度时的最大值。转移方程中的i-1的原因是已经分配掉了一个度,实际增加的是i-1度。注意f2~fn-1要减去f1。

代码

#include<cstdio>
#include<cstring>
#include<cassert>
#include<iostream>
#include<algorithm>

using namespace std;

typedef long long ll;

int n;
int f[2025];
int dp[2025];

int solve(int m)
{
    for(int i=0; i<=m; i++) dp[i]=-0x3f3f3f3f;
    dp[0]=0;
    for(int i=2; i<n; i++)
        for(int j=0; j+i-1<=m; j++)
            dp[j+i-1]=max(dp[j]+f[i],dp[j+i-1]);
    return dp[m];
}

int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        for(int i=1; i<n; i++)
            scanf("%d",&f[i]);
        int ans=f[1]*n;
        for(int i=2; i<n; i++)
            f[i]-=f[1];
        printf("%d\n",ans+solve(n-2));
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

HDU5534 Partial Tree 【DP】

Partial TreeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) To...
  • LuRiCheng
  • LuRiCheng
  • 2017年04月10日 19:50
  • 139

hdu5534 Partial Tree

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5534 题目大致意思是有一棵树,n个点,n-1条边,对于树中的一个点有x条边连着,度数为x。对于度数为...
  • ddmike2015
  • ddmike2015
  • 2015年11月05日 21:07
  • 286

hdu5534 Partial Tree

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submissi...
  • Kirito_Acmer
  • Kirito_Acmer
  • 2015年11月02日 17:13
  • 874

hdu5534 Partial Tree 完全背包

//对于度数为i,其权值为f[i] //问怎样构建一棵点数为n的树,使得它们的权值之和最大,求这个最大值 //这棵树的总点数为2*(n-1),先将所有的点都分配一个度 //然后在剩下的n-2个度用完全...
  • cq_pf
  • cq_pf
  • 2015年11月07日 21:42
  • 256

HDU5534 Partial Tree

题目: 给n个点,给定度为i的点有一个权值w[i],问如何组成一棵树(n-1条边),使得权值和最小 分析: 总共有2(n-1)个度,先给每一个点分配一个度(保证每个点有1个度),剩余n-2个度,...
  • jerry99s
  • jerry99s
  • 2017年10月06日 17:42
  • 61

HDU5534 Partial Tree(15年亚洲区长春站) DP

当时长春赛举办的时候我们队并没有去,另一队跑去参加了。。。 于是我们就去参加中国赛了 然后又是铜奖 真是nice 个屁啊 长春站的H题,一道动态规划的题目,不过需要一些转换。题意是说,给你N个点,让你...
  • Vis_Stu
  • Vis_Stu
  • 2015年11月08日 14:13
  • 366

hdu5534 Partial Tree (巧妙转为完全背包)

题目:一个树由 n 个点 n-1 条边构成,已知度数为 i 的点的权值是 f(i)。问,这棵树最大权值是多少。分析:很好的一道题。 一开始整个队伍一直在想贪心,如何往里一条一条加边使得符合要求。后来...
  • nbl97
  • nbl97
  • 2017年10月03日 20:37
  • 52

HDU 5534 Partial Tree(dp)

题目大意:有一棵N个节点的树,一个节点的度的范围是1~N - 1。再给出一个序列f[i](1 ...
  • Yick_Liao
  • Yick_Liao
  • 2015年11月09日 22:12
  • 180

【hdu5534】【2015ACM/ICPC亚洲区长春站】Partial Tree 题意&题解&代码

2015ACM/ICPC亚洲区长春站 dp
  • DERITt
  • DERITt
  • 2016年04月21日 14:54
  • 1038

Treedp入门问题—Anniversary party

Treedp入门问题—Anniversary party 今天看到树形动态规划的入门问题——Anniversary party,这个问题的思路比较简单,只是实现过程稍微有些麻烦,我看网上的大部分代码...
  • lpq374606827
  • lpq374606827
  • 2014年12月17日 21:22
  • 577
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdu5534 Partial Tree(dp)
举报原因:
原因补充:

(最多只允许输入30个字)