如果要将二叉树{16,14,10,8,7,9,3}_二叉分枝

如果要将二叉树{16,14,10,8,7,9,3}_二叉分枝有一棵二叉苹果树,如果树枝有分叉,一定是分两叉,即没有只有一个儿子的节点。这棵树共 N 个节点,编号为 1 至 N,树根编号一定为 1。我们用一根树枝两端连接的节点编号描述一根树枝的位置。一棵苹果树的树枝太多了,需要剪枝。但是一些树枝上长有苹果,给定需要保留的树枝数量,求最多能留住多少苹果。这里的保留是指最终与1号点连通。输入格式第一行包含两个整数 N 和 Q,分别表示树的节点数以及要保留的树枝数量。接下来 N−1 行描述树枝信息,每行三个整数,前两个是它连接的节点的编号,第三个数是这根树枝上


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

有一棵二叉苹果树,如果树枝有分叉,一定是分两叉,即没有只有一个儿子的节点。

这棵树共 N 个节点,编号为 1 至 N,树根编号一定为 1。

我们用一根树枝两端连接的节点编号描述一根树枝的位置。

一棵苹果树的树枝太多了,需要剪枝。但是一些树枝上长有苹果,给定需要保留的树枝数量,求最多能留住多少苹果。

这里的保留是指最终与1号点连通。

输入格式
第一行包含两个整数 N 和 Q,分别表示树的节点数以及要保留的树枝数量。

接下来 N−1 行描述树枝信息,每行三个整数,前两个是它连接的节点的编号,第三个数是这根树枝上苹果数量。

输出格式
输出仅一行,表示最多能留住的苹果的数量。

数据范围
1≤Q<N≤100.
N≠1,
每根树枝上苹果不超过 30000 个。

输入样例:
5 2
1 3 1
1 4 10
2 3 20
3 5 20
输出样例:
21

题解
有依赖的背包问题

#include<bits/stdc++.h>
using namespace std;
const int N = 110;
int f[N][N];
struct Edge{ 
   
    int v,w,next;
}edge[N * 2];
int head[N],cnt;
int n,V;
void add(int u,int v,int w){ 
   
    edge[cnt].v = v;
    edge[cnt].w = w;
    edge[cnt].next = head[u];
    head[u] = cnt ++;
}
void dfs(int u,int fa){ 
   
    for(int i = head[u];~i;i = edge[i].next){ 
   
        int v = edge[i].v,w = edge[i].w;
        if(v == fa)continue;
        dfs(v,u);
        for(int i = V;i >= 1;i --){ 
   
            for(int j = 0;j <= i - 1;j ++){ 
   
                f[u][i] = max(f[u][i],f[u][i - j - 1] + f[v][j] + w);
            }
        }
    }
}
int main(){ 
   
    cin>>n>>V;
    int x,y,w;
    memset(head,-1,sizeof head);
    for(int i = 0;i < n - 1;i ++){ 
   
        cin>>x>>y>>w;
        add(x,y,w);
        add(y,x,w);
    }
    dfs(1,-1);
    cout<<f[1][V]<<endl;
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168634.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 怎么开外汇平台_如何搭建一个外汇平台

    怎么开外汇平台_如何搭建一个外汇平台外汇市场从世纪之初进入中国,到如今有十几个年头。从起初耳熟能详的几个平台商到现在如雨后春笋般出现,中国的外汇市场越来越开放,价格成本也越来越透明。很多外汇代理商不断发展壮大,对搭建自己的平台有了需求。开外汇平台赚钱,是一个普遍流传的说法。但是开平台到底有怎么样的风险,需要注意哪些环节,要办理哪些手续,多数人还是感到非常神秘。汇商琅琊榜小编今天结合平台搭建行业资深人士的经验,来和大家谈谈怎么样搭建…

    2022年9月11日
  • oracle number存储小数

    oracle number存储小数创建字段paraAnumber(16,2);16是存储整形的长度,2是小数的长度,存储数据格式为:16.22反之paraAnumber(16,3)存储数据格式为:16.333转载于:https://www.cnblogs.com/fuzhaoyang56/archive/2013/05/21/3090811.html…

    2022年7月24日
  • xsrf form html,tornado开启了xsrf_cookies,在ckeditor中上传文件如何传入xsrf_form_html()?…

    xsrf form html,tornado开启了xsrf_cookies,在ckeditor中上传文件如何传入xsrf_form_html()?…tornado在setting中设置了”xsrf_cookies”:True,则需要在表单中添加{%modulexsrf_form_html()%}。但ckeditor如何传xsrf_cookies这个值,每次上传图片都显示’_xsrf’argumentmissingfromPOST。如果把”xsrf_cookies”设置为False则上传成功。下面是上传的代码classcku…

    2022年5月19日
  • mac上好用的录屏软件_mac可用的录屏软件

    mac上好用的录屏软件_mac可用的录屏软件因为工作缘故,需要经常使用录屏软件,然鹅在网上找了很久都是推荐我Quicktime,不要说众所周知的事情好吗[手动捂脸],今天给大家介绍几个我觉得挺不错的Mac录屏软件,希望你们也pick哈!放在第一说明我对他的热爱~很难找到又有简体中文,界面又好看,录屏功能又强大的软件,高举国货大旗~我感觉Quicktime的录制需要手动调节窗口实在是不友好,而这个软件就能支持多种范围的录制方式,支持1920X…

    2022年9月24日
  • My安装EclipseJS代码提示(Spket插件)

    My安装EclipseJS代码提示(Spket插件)

    2021年11月14日
  • HSQL 学习笔记

    HSQL 学习笔记HSQL学习笔记1.    hsql 学习1.1.    学习目的本文档是针对hSQL 数据库方面的基础学习,为了使项目组成员能够达到使用hSQL 数据库的目的。1.2.    培训对象开发人员1.3.    常用词及符号说明常用词:hsql:一种免费的跨平台的数据库系统E:\hsqldb:表示是在dos 命令窗口下面1.4.    参考信息doc

    2022年9月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号