Partial Tree
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的更多相关文章
- hdu 5534 (完全背包) Partial Tree
题目:这里 题意: 感觉并不能表达清楚题意,所以 Problem Description In mathematics, and more specifically in graph theory, ...
- 2015ACM/ICPC亚洲区长春站 H hdu 5534 Partial Tree
Partial Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)To ...
- hdu 5534 Partial Tree 背包DP
Partial Tree Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid= ...
- HDU 5534 Partial Tree 完全背包
一棵树一共有2*(n-1)度,现在的任务就是将这些度分配到n个节点,使这n个节点的权值和最大. 思路:因为这是一棵树,所以每个节点的度数都是大于1的,所以事先给每个节点分配一度,答案 ans=f[1] ...
- H - Partial Tree HDU - 5534 (背包)
题目链接: H - Partial Tree HDU - 5534 题目大意:首先是T组测试样例,然后n个点,然后给你度数分别为(1~n-1)对应的不同的权值,然后问你在这些点形成树的前提下的所能形 ...
- Partial Tree(DP)
Partial Tree http://acm.hdu.edu.cn/showproblem.php?pid=5534 Time Limit: / MS (Java/Others) Memory Li ...
- HDU - 5534 Partial Tree(每种都装的完全背包)
Partial Tree In mathematics, and more specifically in graph theory, a tree is an undirected graph in ...
- HDU 5534/ 2015长春区域H.Partial Tree DP
Partial Tree Problem Description In mathematics, and more specifically in graph theory, a tree is an ...
- hdu5534 Partial Tree
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Submissi ...
随机推荐
- Oracle 数据备份、恢复以及导入时表空间不存在的解决方案
一.数据备份(导出) 1.exp命令导出dmp文件(exp -help查看帮助信息) 命令:exp username/userpasswd@192.168.99.199/orcl file=C:\jd ...
- 算法笔记_014:合并排序(Java)
1 问题描述 给定一组数据,使用合并排序得到这组数据的非降序排列. 2 解决方案 2.1 合并排序原理简介 引用自百度百科: 合并排序是建立在归并操作上的一种有效的排序算法.该算法是采用分治法(Div ...
- 五、RDD持久化
Spark最重要的一个功能是它可以通过各种操作(operations)持久化(或者缓存)一个集合到内存中.当你持久化一个RDD的时候,每一个节点都将参与计算的所有分区数据存储到内存中,并且这些数据可以 ...
- poj 2689 Prime Distance(大区间素数)
题目链接:poj 2689 Prime Distance 题意: 给你一个很大的区间(区间差不超过100w),让你找出这个区间的相邻最大和最小的两对素数 题解: 正向去找这个区间的素数会超时,我们考虑 ...
- c#委托概念
委托的官方概念是:安全封装方法的类型. 百度百科的概念是,委托是个类,定义了方法的类型,使得方法可以作为另外一个方法的参数进行传递.使得程序具有很好的扩展性. 揉碎了讲一下这个概念: 张三要做三件事: ...
- struts2.0中struts.xml配置文件详解
先来展示一个配置文件 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration ...
- tomcat配置https方法
利用tomcat服务器配置https双向认证 步骤 1.为服务器生成证书进入控制台,切换到%JAVA_HOME%/bin目录,具体操作略. 使用keytool为Tomcat生成证书,假定目标机器的域名 ...
- USACO 3.2 Magic Squares
Magic SquaresIOI'96 Following the success of the magic cube, Mr. Rubik invented its planar version, ...
- USACO 3.2 Stringsobits
StringsobitsKim Schrijvers Consider an ordered set S of strings of N (1 <= N <= 31) bits. Bits ...
- [UWP小白日记-5]转换MVA学院的XML字幕为SRT
开源地址:第二版开源地址GIT 暂时用不了了,在最新的WIN10 10586.494系统上回闪退,正在酝酿第二版 O(∩_∩)O哈哈~ 新版已经完工:第二版 地方MVA上好多教程,但是微软的所有中国网 ...