Partial Tree

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5534

完全背包

做这题前去学习了下完全背包,觉得这个优化简直神技!(以前都是用01背包做的,数据水的话可以过= =)

 for(int i=;i<=n;++i)
for(int j=i;j<=V;++j)
dp[j]=max(dp[j],dp[j-i]+v[i]);

完全背包 时间复杂度O(VE)

我们回到这道题,显然整棵树的总的度为2n-2,相当于将2n-2个度分配到n个结点中去;

为了保证没有一个结点的度为0,现将每个结点的度预设为1;

于是问题就相当于往容量为n-2的背包中放东西,东西的代价度,权值为f(x),也就是完全背包的变形了。

设状态:dp[j]表示度为i时的最大值

状态转移方程:dp[j]=max(dp[j],dp[j-i]+f[i+1]-f[1])

代码如下:

 #include<cstdio>
#include<cstring>
#define Max(x,y) (x>y?x:y)
#define N 2020
using namespace std;
typedef long long LL;
const LL INF=(LL)1e15;
LL T,n,dp[*N],f[N],lmt,ans;//dp[i]为存放i代价的最大价值
int main(void){
scanf("%I64d",&T);
while(T--){
scanf("%I64d",&n);
lmt=n-;
for(LL i=;i<=lmt;++i)
dp[i]=-INF;
for(LL i=;i<n;++i)
scanf("%I64d",&f[i]);
for(LL i=;i<n-;++i)
for(LL j=i;j<=lmt;++j)
dp[j]=Max(dp[j],dp[j-i]+f[i+]-f[]);
ans=dp[lmt]+n*f[];
printf("%I64d\n",ans);
}
}

Partial Tree的更多相关文章

  1. hdu 5534 (完全背包) Partial Tree

    题目:这里 题意: 感觉并不能表达清楚题意,所以 Problem Description In mathematics, and more specifically in graph theory, ...

  2. 2015ACM/ICPC亚洲区长春站 H hdu 5534 Partial Tree

    Partial Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)To ...

  3. hdu 5534 Partial Tree 背包DP

    Partial Tree Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid= ...

  4. HDU 5534 Partial Tree 完全背包

    一棵树一共有2*(n-1)度,现在的任务就是将这些度分配到n个节点,使这n个节点的权值和最大. 思路:因为这是一棵树,所以每个节点的度数都是大于1的,所以事先给每个节点分配一度,答案 ans=f[1] ...

  5. H - Partial Tree HDU - 5534 (背包)

    题目链接: H - Partial Tree  HDU - 5534 题目大意:首先是T组测试样例,然后n个点,然后给你度数分别为(1~n-1)对应的不同的权值,然后问你在这些点形成树的前提下的所能形 ...

  6. Partial Tree(DP)

    Partial Tree http://acm.hdu.edu.cn/showproblem.php?pid=5534 Time Limit: / MS (Java/Others) Memory Li ...

  7. HDU - 5534 Partial Tree(每种都装的完全背包)

    Partial Tree In mathematics, and more specifically in graph theory, a tree is an undirected graph in ...

  8. HDU 5534/ 2015长春区域H.Partial Tree DP

    Partial Tree Problem Description In mathematics, and more specifically in graph theory, a tree is an ...

  9. hdu5534 Partial Tree

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submissi ...

随机推荐

  1. springMVC框架中json处理

    1.在项目中导入jackson-core.jar包 2.使用@ResponseBody注解,此注解会自动装换为json 如图: 3.如此,便可以得到json对象

  2. CodeForces 747D Winter Is Coming

    贪心. 只考虑负数的位置,先填间隔较小的,再填间隔较大的.如果填不满就不填,如果有多余就留给最后一个负数到终点这段路. #include<cstdio> #include<cstri ...

  3. Python 调用shell

    第一种,os.system("The command you want"). 这个调用相当直接,且是同步进行的,程序需要阻塞并等待返回.返回值是依赖于系统的,直接返回系统的调用返回 ...

  4. linux看代码方法和建议

    http://blog.csdn.net/lxl584685501/article/details/46803077

  5. Ubuntu 14.04—无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系 解决办法

    在Ubuntu中使用sudo apt-get install安装是有时候会出现: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系   解决办法 这样的错误,这是因为更新源 ...

  6. line-height 行高

    line-height 行高指一行文字的高度,具体来说是指两行文子间基线间的距离      line-height 与 font-size 的计算值之差(行距)分为两半,分别加到一个文本行内容的顶部和 ...

  7. Lua 数据类型和 Redis 数据类型之间转换

    当 Lua 通过 call() 或 pcall() 函数执行 Redis 命令的时候,命令的返回值会被转换成 Lua 数据结构. 同样地,当 Lua 脚本在 Redis 内置的解释器里运行时,Lua ...

  8. ECStore图片存储采用阿里云OSS(图片存储)服务

    主要功能:ECStore图片存储采用阿里云OSS(图片存储)服务   适用版本:ECStore 授权方式:授权域名使用,付费插件 联系方式: QQ 275553385  mail: jimingson ...

  9. zabbix 布署实践【5 使用邮箱SMTP SSL推送告警邮件】

    由于传统的邮件推送脚本使用smtp 25端口,在各大邮箱提供商已不适用,已经向SSL过渡,这里以QQ邮箱为例,使用SSL 465端口 登录zabbix-server 进入 cd /usr/lib/za ...

  10. hdu 5207 BestCoder Round #38 ($) Greatest Greatest Common Divisor

    #include<stdio.h> #include<string.h> #include<math.h> ]; ]; int main() { int sb; s ...