博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
caioj 1114 树形动态规划(TreeDP)3.0:多叉苹果树【scy改编ural1018二叉苹果树】
阅读量:5828 次
发布时间:2019-06-18

本文共 856 字,大约阅读时间需要 2 分钟。

一波树上背包秒杀……

#include
#include
#include
#include
#define REP(i, a, b) for(int i = (a); i < (b); i++)using namespace std;const int MAXN = 312;int f[MAXN][MAXN], cnt[MAXN], n, k;struct node{ int v, w; };vector
g[MAXN];void dfs(int u, int fa){ REP(i, 0, g[u].size()) { int v = g[u][i].v, w = g[u][i].w; if(v == fa) continue; dfs(v, u); cnt[u] += cnt[v]; for(int j = cnt[u]; j >= 1; j--) REP(k, 1, min(cnt[v], j - 1) + 1) f[u][j] = max(f[u][j], f[u][j-k] + f[v][k] + w); }}int main(){ scanf("%d%d", &n, &k); REP(i, 1, n) { int u, v, w; scanf("%d%d%d", &u, &v, &w); g[u].push_back(node{v, w}); g[v].push_back(node{u, w}); cnt[i] = 1; } cnt[n] = 1; dfs(1, -1); printf("%d\n", f[1][k + 1]); return 0;}

 

转载于:https://www.cnblogs.com/sugewud/p/9819389.html

你可能感兴趣的文章
修改故障转移群集心跳时间
查看>>
[轉]redis;mongodb;memcache三者的性能比較
查看>>
微软职位内部推荐-Sr DEV
查看>>
让你的WPF程序在Win7下呈现Win8风格主题
查看>>
802.11 学习笔记
查看>>
Leetcode-Database-176-Second Highest Salary-Easy(转)
查看>>
构建Docker Compose服务堆栈
查看>>
最小角回归 LARS算法包的用法以及模型参数的选择(R语言 )
查看>>
Hadoop生态圈-Kafka常用命令总结
查看>>
如何基于Redis Replication设计并实现Redis-replicator?
查看>>
浮点数内存如何存储的
查看>>
贪吃蛇
查看>>
EventSystem
查看>>
用WINSOCK API实现同步非阻塞方式的网络通讯
查看>>
玩一玩博客,嘿嘿
查看>>
P1352 没有上司的舞会
查看>>
ios11文件夹
查看>>
【HLOJ 559】好朋友的题
查看>>
Electric Fence(皮克定理)
查看>>
nvl 在mysql中如何处理
查看>>