其实用点权更简单,但这种做法是边权的

/*
依赖背包问题
dp[u][k]表示u结点往下共走k步的最大值
*/
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
struct Edge{int w,to,nxt;}edge[];
int head[],tot,n,k,dp[][];
void init(){
memset(head,-,sizeof head);
tot=;
}
void addedge(int u,int v,int w){
edge[tot].w=w;edge[tot].to=v;edge[tot].nxt=head[u];head[u]=tot++;
}
void dfs(int u,int pre){
for(int i=head[u];i!=-;i=edge[i].nxt){
int v=edge[i].to;
if(v!=pre)dfs(v,u);
}
for(int i=head[u];i!=-;i=edge[i].nxt){
int v=edge[i].to;
if(v==pre)continue;
for(int j=k;j>=;j--)
for(int t=;t<j;t++)
dp[u][j]=max(dp[u][j],dp[u][t]+dp[v][j-t-]+edge[i].w);
}
//printf("%d %d %d %d\n",u,dp[u][0],dp[u][1],dp[u][k]);
}
int main(){
while(cin>>n>>k){
init();
for(int i=;i<n;i++){
int u,v,w;
cin>>u>>v>>w;
addedge(u,v,w);
addedge(v,u,w);
}
memset(dp,,sizeof dp);
dfs(,);
printf("%d\n",dp[][k]);
}
return ;
}

ural1018依赖背包-边权的更多相关文章

  1. 依赖背包优化——ural1018,金明的预算方案

    经典题了,网上博客一大堆O(nCC)的做法,其实是可以将复杂度降到O(nC)的 参考依赖背包优化(泛化物品的并) 根据背包九讲,求两个泛化物品的和复杂度是O(CC)的,所以依赖背包暴力求解的复杂度是O ...

  2. 【HDU 4276】The Ghost Blows Light(树形DP,依赖背包)

    The Ghost Blows Light Problem Description My name is Hu Bayi, robing an ancient tomb in Tibet. The t ...

  3. BZOJ.4910.[SDOI2017]苹果树(树形依赖背包 DP 单调队列)

    BZOJ 洛谷 \(shadowice\)已经把他的思路说的很清楚了,可以先看一下会更好理解? 这篇主要是对\(Claris\)题解的简单说明.与\(shadowice\)的做法还是有差异的(比如并没 ...

  4. Gym - 101002D:Programming Team (01分数规划+树上依赖背包)

    题意:给定一棵大小为N的点权树(si,pi),现在让你选敲好K个点,需要满足如果如果u被选了,那么fa[u]一定被选,现在要求他们的平均值(pi之和/si之和)最大. 思路:均值最大,显然需要01分数 ...

  5. bzoj4753: [Jsoi2016]最佳团体(分数规划+树形依赖背包)

    菜菜推荐的“水题”虐了我一天T T...(菜菜好强强qwq~ 显然是个分数规划题,二分答案算出p[i]-mid*s[i]之后在树上跑依赖背包,选k个最大值如果>0说明还有更优解. 第一次接触树形 ...

  6. HDU - 6643: Ridiculous Netizens(点分治+依赖背包+空间优化)

    题意:给定带点权的树,问多少个连通块,其乘积<=M; N<=2000,M<1e6; 思路:连通块-->分治: 由于普通的树DP在合并的时候复杂度会高一个M,所以用依赖背包来做. ...

  7. 依赖背包变形(经典)——poj1155

    这个题用优化后的依赖背包做难以实现,所以用常规的泛化物品的和来做即可 每个节点的容量定义为这个节点下的叶子结点个数,dp[u][j]用来表示节点u下选取j个物品的最大收益,最后从m-0查询dp[1][ ...

  8. hdu 1561 The more, The Better (依赖背包 树形dp)

    题目: 链接:点击打开链接 题意: 非常明显的依赖背包. 思路: dp[i][j]表示以i为根结点时攻击j个城堡得到的最大值.(以i为根的子树选择j个点所能达到的最优值) dp[root][j] = ...

  9. hdoj1010Starship Troopers (树dp,依赖背包)

    称号:hdoj1010Starship Troopers 题意:有一个军队n个人要占据m个城市,每一个城市有cap的驻扎兵力和val的珠宝,并且这m个城市的占率先后具有依赖关系,军队的每一个人能够打败 ...

随机推荐

  1. 如何在 JS 中嵌入大量 HTML 代码 --更新2017-10-10 16:37:09

    一.一般方式 方式1:\ 要写在标签后面,看例子 var longString = "\ ------------------------\ ------------------------ ...

  2. Java-Servlet -Helloworld

    Servlet 简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏 ...

  3. python笔记(优化相关)

    1. 列表推导: https://www.cnblogs.com/liu-shuai/p/6098227.html 列表推导的速度比普通循环快一倍左右 2. 尽可能多地使用内置方法: https:// ...

  4. Content-disposition中Attachment和inline的区别

    1.Content-disposition中Attachment和inline的区别java web中下载文件时,我们一般设置Content-Disposition告诉浏览器下载文件的名称,是否在浏览 ...

  5. HashMap、Hashtable、ConcurrentHashMap面试总结

    原文链接:https://www.cnblogs.com/hexinwei1/p/10000779.html 小总结 HashMap.Hashtable.ConcurrentHashMap HashM ...

  6. 刷题之路第三题--Longest Substring Without Repeating Characters

    问题简介:求给定字符串中最长的字符不重复的字符串的长度 问题详解: 给定一个字符串,寻找给定字符串中包含的最长的字符不重复的字符串的长度 注:答案必须是子字符串,不是子序列 是连续的字符不重复的字符串 ...

  7. 获取AWR报告

    1.进入sqlplus [oracle@localhost admin]$ sqlplus / as sysdba SQL Production :: Copyright (c) , , Oracle ...

  8. SpringSocial简介

    ⒈常用的pom依赖 <dependency> <groupId>org.springframework.social</groupId> <artifactI ...

  9. web层直接调用 dubbo的服务,合适吗?

    目前很多互联网app项目,都是采用这样的一个基本项目结构:即由后端提供Restful的api接口,然后供前端例如IOS.Android或者H5端去调用,如图: 在这种结构下,后台的代码分层常规一般会有 ...

  10. async_mongo_helper

    # -*- coding: utf-8 -*- # @Time : 2019/1/7 2:11 PM # @Author : cxa # @File : motortesdt.py # @Softwa ...