题目链接

题意

给出一个n个结点的树,给出n-1个度的权值f[],代表如果一个点的度数为i,那么它对于答案的贡献有f[i]。问在这棵树最大的贡献能达到多少。

思路

对于这个图,有n*2-2个度可以分配(看成一条链的形状),首先可以确定n个点,那么每个点都是要分配一个度的,因此现在有n个f[1],还有n-2个度没有分配。那么这n-2就可以当做背包容量,对于每一种度,像完全背包一样去枚举用多少种最优。

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int, int> pii;
const int INF = 0x3f3f3f3f;
const int N = 1e4 + 11;
int f[N], dp[N]; int main() {
int n, t; scanf("%d", &t);
while(t--) {
scanf("%d", &n);
memset(dp, -INF, sizeof(dp));
dp[0] = 0;
for(int i = 1; i < n; i++) scanf("%d", &f[i]);
for(int i = 1; i < n - 1; i++) // 有n-2种物品分配,每个物品可以用无限次,这里偏移了1,实际上只用2至n-1
for(int j = i; j < n - 1; j++) // 背包最大容量为n-2,像完全背包一样枚举
dp[j] = max(dp[j], dp[j-i] + f[i+1] - f[1]); // 将1号结点换成i号结点
printf("%d\n", dp[n-2] + n * f[1]);
}
return 0;
}

最新文章

  1. mongodb学习2---常用命令解析
  2. 使用线程池模拟处理耗时任务,通过websocket提高用户体验
  3. js事件代理
  4. 在Windows下用Eclipse+CDT+MinGW搭建C++开发平台
  5. java_tomcat_the_APR based Apache Tomcat 小喵咪死活启动报错_临时方案
  6. hdu 1028 Ignatius and the Princess III(母函数入门+模板)
  7. ECMAScript 6.0 简介
  8. iphone 4s页面引用jssdk无效
  9. properties类是Hashtable的子类
  10. &lt;%@ Register TagPrefix=&quot;uc1&quot; TagName=&quot;user&quot; Src=&quot;../Control/user.ascx&quot; %&gt;什么意思?
  11. Perl IO:操作系统层次的IO
  12. 【C/C++】Dijkstra算法的简洁实现
  13. Centos下普通用户设置sudo权限
  14. 洛谷P2054 [AHOI2005]洗牌(扩展欧几里德)
  15. eclipse去掉所有断点 恢复到默认窗口
  16. 简单了解一下php的迭代生成器yield
  17. (一)PHP简介
  18. 签名Cookie
  19. 【算法】插入排序(Insertion Sort)
  20. rem布局计算(移动端,pc端有兼容性)

热门文章

  1. multi-node和generic-pool两大利器
  2. WPF 4 目录树型显示
  3. MVVM讲解
  4. WPF 列表样式
  5. css3 hover平滑过渡效果,鼠标经过元素,背景渐隐渐现效果
  6. mysql主从配置及其读写分离
  7. IE的BHO通过IHTMLDocument2接口获得网页源代码
  8. Android零基础入门第37节:初识ListView
  9. 【Windows10&nbsp;IoT开发系列】API&nbsp;移植工具
  10. [PowerDesign]将数据库从SQL Server数据库转换为MySQL