HDU 5834 Magic boy Bi Luo with his excited tree 树形DP

银河麒麟V10系统grub崩溃急救指南:从光盘救援到完整恢复(附常见错误排查) 本文详细介绍了银河麒麟V10系统grub崩溃的急救方法,从使用安装光盘进入救援环境到完整恢复系统的全流程。针对不同损坏程度(轻度、中度、严重)提供了分级恢复策略,包括grub2-install和grub2-mkconfig等关键命令的使用,并附有常见错误排查表,帮助用户快速解决引导问题。 阅读详情

参考http://www.cnblogs.com/qscqesze/p/5771193.html
挺经典的

题意

给你一棵树,边有边权,每经过边一次,就得支付过路费c[i],点上面有宝藏,每个点只能拿一次。

问从每个点出发,能够拿到的最大值是多少?

有空自己做一下

#include <bits/stdc++.h>
#define INF 1000000007
#define FI first
#define SE second
#define PB emplace_back
#define VI vector<int>
using namespace std;
typedef long long LL;
typedef pair <int, int> P;
const int NUM = 100010;
struct edge {int next, to, cost;} e[NUM * 2];
int head[NUM], tot;
void gInit() {memset(head, -1, sizeof(head)); tot = 0;}
void add_edge(int u, int v, int c)
{
    e[tot] = (edge) {head[u], v, c};
    head[u] = tot++;
}
int n, V[NUM], w1[NUM], w2[NUM], id[NUM], ans[NUM];
//w1是从该点出发最后回到该点的最大值
//w2是从该点出发有一次不回来的最大值
//id是不回来的路的子树根节点
void dfs1(int u, int fa)
{
    w1[u] = V[u];
    w2[u] = V[u];
    id[u] = -1;
    for(int i = head[u]; ~i; i = e[i].next) {
        int v = e[i].to;
        if(v == fa) continue;
        dfs1(v, u);
        int tmp = max(0, w1[v] - e[i].cost - e[i].cost);
        int tmmp = w1[u] + max(0, w2[v] - e[i].cost);
        w2[u] += tmp;
        if(w2[u] < tmmp) {
            w2[u] = tmmp;
            id[u] = v;
        }
        w1[u] += tmp;
    }
}
//sum1同w1,sum2同w2
void dfs2(int u, int fa, int sum1, int sum2)
{
    ans[u] = max(w1[u] + sum2, w2[u] + sum1);
    int W1 = w1[u];
    int W2 = w2[u];
    int Id = id[u];
    W2 += sum1;
    if(W2 <= W1 + sum2) {
        W2 = W1 + sum2;
        Id = fa;
    }
    W1 += sum1;
    for(int i = head[u]; ~i; i = e[i].next) {
        int v = e[i].to;
        if(v == fa) continue;
        if(v == Id) {
            int tmp1 = sum1 + V[u], tmp2 = sum2 + V[u];
            for(int j = head[u]; ~j; j = e[j].next) {
                int vv = e[j].to;
                if(vv == fa || v == vv) continue;
                int tmp = max(0, w1[vv] - e[j].cost - e[j].cost);
                tmp2 = max(tmp1 + max(0, w2[vv] - e[j].cost), tmp2 + tmp);
                tmp1 += tmp;
            }
            tmp1 = max(0, tmp1 - e[i].cost - e[i].cost);
            tmp2 = max(0, tmp2 - e[i].cost);
            dfs2(v, u, tmp1, tmp2);
        }
        else {
            int tmp = max(0, w1[v] - e[i].cost - e[i].cost);
            int tmp1 = max(0, W1 - tmp - e[i].cost - e[i].cost);
            int tmp2 = max(0, W2 - tmp - e[i].cost);
            dfs2(v, u, tmp1, tmp2);
        }
    }
}
int main()
{
    int T; scanf("%d", &T);
    for(int cas = 1; cas <= T; ++cas) {
        gInit();
        scanf("%d", &n);
        for(int i = 1; i <= n; ++i) {
            scanf("%d", &V[i]);
        }
        for(int i = 1; i < n; ++i) {
            int u, v, c;
            scanf("%d%d%d", &u, &v, &c);
            add_edge(u, v, c);
            add_edge(v, u, c);
        }
        dfs1(1, -1);
        dfs2(1, -1, 0, 0);
        printf("Case #%d:\n", cas);
        for(int i = 1; i <= n; ++i)
            printf("%d\n", ans[i]);
    }
    return 0;
}
【数学基础】基于欧拉角表达的旋转顺序 欧拉角旋转顺序 阅读详情

相关推荐

​​WPF入门与XAML基础:从零开始构建你的第一个WPF应用​

本文是WPF入门系列首篇,详细介绍WPF的核心优势与开发环境搭建。通过创建第一个WPF项目,解析MainWindow.xaml和App.xaml等关键文件,深入讲解XAML基础语法,包括属性赋值、命名空间和事件绑定。最后通过按钮点击交互示例演示WPF应用程序运行流程,帮助开发者快速上手WPF开发,为后续学习布局系统和数据绑定等高级主题奠定基础。

Hare的博客 3280

Hdu 5834 Magic boy Bi Luo with his excited tree —— 树形DP

This way 题意: 现在有一棵大小为n的树,每个点有一个点权,边有边权,你到一个点可以得到它的权值,每个点权只能加一次,但是边权只要走过就会扣。问你从每个点出发能够得到的最大权值是多少。 题解: 三目运算符下次记得加括号…少加了这个括号我debug了好久 那么首先明显是树形DP,每个点需要记录的是两个值: dp[x][0]:从x向子树走,并且回到x的最大权值 dp[x][1]从x向子树走,不回到x的最大权值 那么我们首先dfs处理出来这两个东西 if(((dp[ne][0]−w∗2)>0?su

天翼之城的博客 173

AI报告撰写实战指南:从提示词工程到全流程优化的底层逻辑与实践突破

传统AI写作常被诟病为“信息拼贴”——模型虽能生成文本,却常出现逻辑断裂、数据矛盾、风格不符等问题。而“全流程优化”则是通过系统化设计,将报告生成拆解为需求解析→数据对齐→提示词设计→初稿生成→迭代优化→格式适配六大环节,每个环节均通过技术手段提升输出质量。提示词工程:本质是通过结构化指令(如角色设定、任务分解、格式约束、示例引导)精准控制模型输出方向,是连接用户需求与模型能力的“翻译器”。全流程优化。

2501_92808811的博客 884

hdu5834Magic boy Bi Luo with his excited tree(树形DP)

Magic boy Bi Luo with his excited tree Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 823    Accepted Submission(s): 222 Problem De

ACMan 756

卡尔曼滤波调参避坑指南:Q/R参数怎么设?实测5种传感器场景

本文针对卡尔曼滤波在工程实践中Q/R参数设置的难题,提供了一套实用的调参避坑指南。通过分析过程噪声方差Q与测量噪声方差R的物理意义与博弈关系,并结合温度传感器、陀螺仪、超声波测距等五种典型传感器场景的实测效果对比,总结出从噪声估算、离线仿真到收敛测试的系统性调参方法论,帮助工程师快速实现稳定有效的滤波效果。

weixin_29174141的博客 803

首个FDA认证开源医学影像AI平台Comp2Comp:从CT自动分析到临床部署全解析

深度学习模型在医学影像分析领域正成为变革性力量,其核心原理是通过卷积神经网络自动学习图像特征,实现精准分割与检测。这一技术价值在于将高度依赖医生经验的定性、主观判断,转化为高效、客观、可重复的定量分析,极大提升了诊断的一致性和工作效率。在应用场景上,医学影像AI已广泛渗透于疾病筛查、辅助诊断、预后评估及治疗方案规划等多个环节。本文聚焦于获得FDA 510(k)认证的开源平台Comp2Comp,它集成了主动脉钙化评分和椎体骨密度分析双任务,通过串联式的U-Net分割网络与目标检测模型,构建了从DICOM预处理

weixin_33725126的博客 653

Magic boy Bi Luo with his excited tree HDU - 5834(树形DP)

Bi Luo is a magic boy, he also has a migic tree, the tree has N nodes , in each node , there is a treasure, it’s value is V[i], and for each edge, there is a cost C[i], which means every time you pass...

tomjobs的博客 453

实战指南:在摩尔线程GPU上部署AI模型的完整流程

本文提供了一份详尽的实战指南,手把手教你如何在摩尔线程GPU上成功部署AI模型。内容涵盖从驱动安装、Docker环境配置,到核心的代码适配与模型运行全流程,并分享了性能调优技巧与常见避坑方法,旨在帮助开发者高效利用国产硬件进行AI应用开发。

weixin_29271263的博客 541

hdu 5834 Magic boy Bi Luo with his excited tree (树形dp)

Problem Description Bi Luo is a magic boy, he also has a migic tree, the tree has N nodes , in each node , there is a treasure, it's value is V[i], and for each edge, there is a cost C[i], wh

Dizzy的专栏 345

win10自动修复-无限循环【通用完美】超简单解决办法

2020.02.14今个我的笔记本电脑(Thinkpad Carbon 7 X1)(win10)早晨起来发现蓝屏,上面显示自动修复失败,重启后依然自动修复失败,不断手动重启,始终是修复失败。然后上网开始搜集资料找解决办法。 前边介绍关闭自动修复,如何找出错文件的方法;如果想看最终解决办法,直接看第三部分 上网就会发现这种现象很常见,同时是电脑自动安装系统更新,或者安装某些驱动出现。解决办法也大...

y15941300574的博客 19万+

Qualcomm平台下基于QSEE的指纹识别方案移植之四TA移植

本文只介绍TA移植的过程,不做技术分析,关于TA开发另做记录。 一、TA介绍 TA,Trusted application 可信应用,是运行于QSEE中的可执行程序。 指纹TA文件如下,形式一般是 xxx.mbn; xxx.b0 ~ xxx.b6, xxx.flist, xxx.mdt; xxx.mbn 可以理解为其它几个文件的集合,签名的时候用的就是这个文件,签完名之后,有对应的工具将它...

梦路遥 7548

HDU5834 Magic boy Bi Luo with his excited tree(树形DP)

题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5834 Description Bi Luo is a magic boy, he also has a migic tree, the tree has N nodes , in each node , there is a treasure, it's value is ...

dengliugong3918的博客 168

2026年数学建模国赛论文排版规范:Word与LaTeX终极对比及模板

提前演练:不要等到比赛开始才第一次使用排版工具。至少在赛前一个月完成1-2篇模拟论文的全流程排版练习。建立检查清单:基于国赛规范制定排版检查清单,在提交前逐项核对——公式编号连续?图表引用准确?参考文献完整?页数不超限?善用模板但不止于模板:模板提供的是起点而非终点。根据自身需求调整宏包配置和样式参数,理解每一行配置的含义。关注评审体验:从评委的视角审视论文——重点内容是否突出?逻辑结构是否清晰?视觉层次是否合理?备份与容错:无论使用何种工具,建立多级备份机制。本地、云端、U盘各存一份,且定期保存历史版本。

YOLO 210

Hdu-5834 Magic boy Bi Luo with his excited tree(树形DP)

Problem Description Bi Luo is a magic boy, he also has a migic tree, the tree has N nodes , in each node , there is a treasure, it's value is V[i], and for each edge, there is a cost C[i], wh

WZJRJ28 799

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

HDU 5834 Magic boy Bi Luo with his excited tree【树形DP⭐】

Magic boy Bi Luo with his excited tree 题意: 在一棵既有边权又有点权的(无向)树上,要求求从每个节点出发能获得的最大权值。 每经过某条边,都要花费相对应的边权。重复经过将重复花费。 到达某个点,可以获得相对应的点权。只能获得一次。 题解: 题目中强调边权重复花费的时候就应该明白一点,为了得到最大权值,是需要走多条路才会走某些路往返走了两遍。 一、什么路可能会走多遍? 某条支路,走过去走回来,获得点权,扣去两次边权,仍有收益。 二、什么路需要走多...

lllllan 206

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

HDU 5834 Magic boy Bi Luo with his excited tree(树形dp)

题意是给你一个树,让你求出以任意一个点为起点,走到的最大权值和,走过一个点,权值只能获得一次,每走过一条边,就要花费cost题意是给你一个树,让你求出以任意一个点为起点,走到的最大权值和,走过一个点,权值只能获得一次,每走过一条边,就要花费cost 这题需要维护4个数组,dfs两次这题需要维护4个数组,dfs两次 A数组表示从i往下走,回到i的最大权值和A数组表示从i往下走,回到i的最大权值和

Miracle_ma的专栏 545

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

HDU - 5834 Magic boy Bi Luo with his excited tree 树形DP(经典)

传送门:HDU 5834 题意:给你一棵树,边有边权,每经过边一次,就得支付过路费c[i],点有点权,每个点只能获得一次。 问从每个点出发,能够获得的最大权值是多少? 思路:经典树形DP, dp[i][0]表示从i到以i为根的子树中去,再回到i能获得的最大权值。 dp[i][1]表示从i出发到以i为根的子树中不回到i点的最大权值。 f[i][0]表示从i出发去i的父节点方向再回到i点能获

WA是一笔财富 448

HDU - 5834 Magic boy Bi Luo with his excited tree (树形dp)

Bi Luo is a magic boy, he also has a migic tree, the tree hasNNnodes , in each node , there is a treasure, it's value isV[i]V[i], and for each edge, there is a costC[i]C[i], which means every time you pass the edgeii, you need to payC[i]C[i]. You m...

。 247

(树形dp)hdu 5834 Magic boy Bi Luo with his excited tree

题目 hdu5834 题意: 在一棵树上,每个结点都有不同的价值,每条边都有不同的代价,每个结点的价值只能获取一次,但是每经过一条边都要扣除相应的代价。输出从结点1~n 开始获取价值的最大值。 思路: 从结点开始获取价值的最大值 = max(子树回来 + parent不回来,parent回来 + 子树不回来) 结点p 的子树s 回来和子树s 不回来的最大值好求: 0表示不回来,1表示回来 子树s 回来:遍历每个子树s(结点p 到结点s 的代价w), dp [ p ] [ 1 ] = max (dp [ p

ymxyld的博客 247

HDU5834_Magic boy Bi Luo with his excited tree_树形DP

#include #include #include #include #include #include #define INF 0x3f3f3f3f #define rep0(i, n) for (int i = 0; i < n; i++) #define rep1(i, n) for (int i = 1; i <= n; i++) #define rep_0(i, n) fo

Sangria's Blog 364

HDU 5834 Magic boy Bi Luo with his excited tree (树形DP)

这题很典型的树形dp可以看出来,但是要处理好所有的细节并不easy……至少对我来说是这样。 先dfs一遍处理出: dp[u][0],最后一次不回来最大, dp[u][1],不回来次大, dp[u][2] , 回来; (以上都是在子树范围下)(想象一下,dp[u][i]是包含了其所有子树信息的) id[u] ,最后一次不回来的孩子id 无疑:这里最关键的,也难点部分就在于 怎么处理“次

卡尔 1301

树形dp____Magic boy Bi Luo with his excited tree( hdu 5834 2016ccpc网络赛)

Problem Description Bi Luo is a magic boy, he also has a migic tree, the tree has N nodes , in each node , there is a treasure, it's value is V[i], and for each edge, there is a cost C[i], wh

YzlCoder的记事本 909

hdu5834 Magic boy Bi Luo with his excited tree(树形dp)

Magic boy Bi Luo with his excited tree Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 723    Accepted Submission(s): 192 Problem De

随心丶而遇的博客 1870

hdu 5834 Magic boy Bi Luo with his excited tree 树形dp

题目大意:给你一棵树,每个点都有权值,每条边也有权值,从一个点出发,获得点值,走过一条边付出边值,点值只能获得一次,边值走一次付出一次。问从每个点出发,可以获得的最大价值。 每个点记录从这个点出发又回来的最大值re[x],以及从这个点出发最终往一个方向走的最大值ans[x][0]。第一次dfs还要记录下最优值ans[x][0]、次优值ans[x][1],以及最优值是往那条边走的f[x][0]。第

varinic 的博客 643

hdu5834 Magic boy Bi Luo with his excited tree 【树形dp】

题目链接 hdu5834 题解 思路很粗犷,实现很难受 设\(f[i][0|1]\)表示向子树走回来或不回来的最大收益 设\(g[i][0|1]\)表示向父亲走走回来或不回来的最大收益 再设\(h[i]\)为\(f[i][0]\)的次优收益 对于\(f[i][1]\),贪心选择所有\(f[v][1] - 2 * w \ge 0\)的子树即可 对于\(f[i][0]\),贪心选择所有没有被选的子树的...

weixin_30810583的博客 70

HDU 5834 Magic boy Bi Luo with his excited tree——树形dp

唯一要注意的就是最大和次大,他们可以在一条树链上,值可以相同 PS:超时超到怀疑人生,最后发现数组开大了 #include #include #include #include using namespace std; const int maxn = 1e5 + 10; inline int read() { int s = 0; char ch = getchar

hao_zong_yin的博客 550
上一篇: Codeforces 837D - Round Subset 【DP】
下一篇: HDU6153-A Secret ex-kmp
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值