HDU5534 Partial Tree
来源:互联网 发布:用java编写水仙花数 编辑:程序博客网 时间:2024/05/29 12:08
题目:
给n个点,给定度为i的点有一个权值w[i],问如何组成一棵树(n-1条边),使得权值和最小
分析:
总共有2(n-1)个度,先给每一个点分配一个度(保证每个点有1个度),剩余n-2个度,还是分配给这n个点。
问题转化为:空间为n-2的一个背包,如何分配给n个物品,使得价值最大
问题再转化为:每个物品可以取0,1,2,3…..n-2个(对应每个点有多少度),即每个物品可取无限件,在一个空间为n-2的背包中,怎样取得最大价值
问题最终转化为:一个完全背包问题
(这道题想了好久好久才明白,也写了好久好久!!!)
代码:
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int Tmax=2020;int n,w[Tmax],f[Tmax];void dp(){ int i,j; f[0]=n*w[1]; for(i=0;i<=n-2;i++) for(j=i;j<=n-2;j++) f[j]=max(f[j],f[j-i]+w[i+1]-w[1]); return;}int main(){ int T,i; scanf("%d",&T); while(T--) { scanf("%d",&n); for(i=1;i<n;i++) scanf("%d",&w[i]); memset(f,0,sizeof(f)); dp(); printf("%d\n",f[n-2]); } return 0;}
阅读全文
0 0
- hdu5534 Partial Tree
- hdu5534 Partial Tree
- hdu5534 Partial Tree
- hdu5534 Partial Tree
- hdu5534 Partial Tree(dp)
- HDU5534 Partial Tree 【DP】
- HDU5534 Partial Tree
- hdu5534 Partial Tree 完全背包
- HDU5534--Partial Tree (完全背包)
- hdu5534 Partial Tree (巧妙转为完全背包)
- HDU5534 Partial Tree(15年亚洲区长春站) DP
- 【hdu5534】【2015ACM/ICPC亚洲区长春站】Partial Tree 题意&题解&代码
- 【HDU5534 2015长春赛区H】【树上DP转完全背包】Partial Tree 不同度不同权对应最大树权
- hdu5534
- hdu 5534 Partial Tree
- HDU 5534 Partial Tree
- hdu 5534 Partial Tree
- HDU-5534-Partial Tree
- Amazon Dynamo系统架构
- Java多线程之ReentrantLock使用-yellowcong
- 白话空间统计之二十五:空间权重矩阵(四)R语言中的空间权重矩阵(5)完结篇:自然临近关系
- 欢迎使用CSDN-markdown编辑器
- 设计模式_4:代理模式
- HDU5534 Partial Tree
- 【Java学习3.5.1】自动类型转换2
- 算法1.1.22
- (M)Dynamic Programming:279. Perfect Squares
- c/c++知识点---内存复制函数memcpy的使用
- 什么是Vue?
- spring与mybatis三种整合方法
- Ural 1085|Meeting|Floyd|最短路径
- 367. Valid Perfect Square