蓝桥杯专题-真题版含答案-【生命之树】【消除尾一】【密码脱落】【生日蜡烛】

本文介绍了涉及Unity3D特效、游戏脚本自动化、Android控件解析、Scratch编程案例及软考系列的学习资源。同时,提出了生命之树问题的解决方案,这是一个涉及图论和最大权重子树的算法问题。此外,还展示了消除尾一的位操作技巧和一个关于密码对称性的字符串处理问题。文章旨在帮助开发者提升编程技能并解决实际问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

👉关于作者

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,获取更多支持,交流让学习不再孤单

芝麻粒儿-空名先生

👉实践过程

需要所有整理的文档可底部卡片联系我,直接发压缩包。

😜生命之树

在X森林里,上帝创建了生命之树。

他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值。
上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点a,b,都存在一个点列 {a, v1, v2, …, vk, b}
使得这个点列中的每个点都是S里面的元素,且序列中相邻两个点间有一条边相连。

在这个前提下,上帝要使得S中的点所对应的整数的和尽量大。
这个最大的和就是上帝给生命之树的评分。

经过atm的努力,他已经知道了上帝给每棵树上每个节点上的整数。但是由于 atm 不擅长计算,他不知道怎样有效的求评分。
他需要你为他写一个程序来计算一棵树的分数。

「输入格式」
第一行一个整数 n 表示这棵树有 n 个节点。
第二行 n 个整数,依次表示每个节点的评分。
接下来 n-1 行,每行 2 个整数 u, v,表示存在一条 u 到 v 的边。由于这是一棵树,所以是不存在环的。

「输出格式」
输出一行一个数,表示上帝给这棵树的分数。

「样例输入」
5
1 -2 -3 4 5
4 2
3 1
1 2
2 5

「样例输出」
8

#include <iostream>
#include <vector>

using namespace std;
int n;
const int MaxN = 1e5;
long long w[MaxN + 1];//每个点的权重
//long long ww[MaxN + 1];//每个点作为根节点时能得到的最大权和
long long ans;
vector<int> g[MaxN + 1];//邻接表

/*以root为根,算出最大的权和*/
void dfs(int root, int fa) {
   
//    ww[root] = w[root];
    for (int i = 0; i < g[root].size(); ++i) {
   
        int son = g[root][i];//其中一个孩子
        if (son != fa) {
   
            dfs(son, root);
            if (w[son] > 0)
                w[root] 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芝麻粒儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值