linux.do
21.4K subscribers
123K photos
199 videos
121 files
259K links
linux.do最新话题和热议话题
Download Telegram
Leetcode每日一题练习 ------ 2467. 树上最大得分和路径

Leetcode 每日一题练习继续讨论:

2467. 树上最大得分和路径
2467. Most Profitable Path in a Tree

题解

本题首先注意因为是一棵无向树,且节点0确定为树的根,则bob到根节点的路径只能有一条,而对Alice来说,找到能获得最大价值的路径,要通过dfs遍历所有可能的路径并比较,在此过程中,必定会经过Bob经过的路径,考虑Alice是从节点0出发的,因此经过Bob的起始节点时Alice经过的路径必定为Bob经过路径的逆序,根据题目所述可知二人在路径的中间位置必定相遇,因此Alice的路径的后半段Bob已经走过了,根据题目条件可知这段路径上的全部节点的开门奖励均为0(已经被Bob开过了)。则可以先找到Bob到节点0的路径并保存路径上每个节点Bob经过的时间(可以Bob的起始节点作为根节点进行dfs),对Alice来说,如果经过某个节点的时间大于Bob经过的时间,则该节点上Alice能取得的值为0,如果相等则为一半,其余情况均可取到完整的值。

使用dfs遍历所有可能路径并计算到达各个叶子节点的路径开门成本和,每当到达一个新的叶子节点时即将到该节点的路径成本和与保存的最大值比较,直到遍历完整棵树。

代码

class Solution {
public:
int mostProfitablePath(vector&LTvector&LTint>>& edges, int bob, vector&LTint>& amount) {
int n = amount.size();
vector&LTvector&LTint>> graph(n);
for (auto &e : edges) {
int u = e[0], v = e[1];
graph[u].push_back(v);
graph[v].push_back(u);
}

const int INF = 1e9;
vector&LTint> bobTime(n, INF);

function&LTint(int, int, int)> dfsBob = [&](int node, int parent, int time) -> int {
if (node == 0){
bobTime[0] = time;
return time;
}
for (int nxt : graph[node]) {
if (nxt == parent) continue;
int d = dfsBob(nxt, node, time+1);
if (d != -1) {
bobTime[node] = time;
cout << node << " "<< time <&LTendl;
return time;
}
}
return -1;
};
dfsBob(bob, -1, 0);

int ans = -1e9;
function&LTvoid(int, int, int, int)> dfsAlice = [&](int node, int parent, int t, int profit) {
if (t < bobTime[node])
profit += amount[node];
else if (t == bobTime[node])
profit += amount[node] / 2;

if(graph[node].size()==1 && node != 0){
ans = max(ans, profit);
}
for (int nxt : graph[node]) {
if (nxt == parent) continue;
dfsAlice(nxt, node, t + 1, profit);
}
};

dfsAlice(0, -1, 0, 0);
return ans;
}
};

1 个帖子 - 1 位参与者

阅读完整话题

via LINUX DO - 最新话题 (author: ninijia)
佬们,有没有做过近视手术,五一准备做近视手术

有没有后遗症,分享一下啊

1 个帖子 - 1 位参与者

阅读完整话题

via LINUX DO - 最新话题 (author: mengwuchang)
江西财经大学 江财敏毅智算 江西省高校首个独立部署DeepSeek-R1平台

微信公众平台

江财敏毅智算DeepSeek-R1满血版,上线!

终于啊呜呜呜😭
认真的?我还以为只有浙大有,我财也有 :bili_110:
3 个帖子 - 3 位参与者

阅读完整话题

via LINUX DO - 最新话题 (author: Jay)
linuxdo mail 在哪里申请呀

老人跟不上冲浪速度了

7 个帖子 - 7 位参与者

阅读完整话题

via LINUX DO - 最新话题 (author: 小白)
done~~ 感谢Linux do mail

1 个帖子 - 1 位参与者

阅读完整话题

via LINUX DO - 最新话题 (author: Blake)
日常兼职需求

佬们,有什么日常兼职吗?

1 个帖子 - 1 位参与者

阅读完整话题

via LINUX DO - 最新话题 (author: GTX)
Grok3模型被爆短暂屏蔽特朗普和马斯克负面信息

Elon Musk的AI公司xAI最新旗舰模型Grok 3在发布后被用户发现短暂屏蔽了有关特朗普和马斯克的负面信息。xAI工程负责人Igor Babuschkin证实了这一调整,但表示已迅速恢复原状,因不符公司价值观。

此前,Grok 3还被指过于左倾,曾对特朗普和马斯克提出极端言论。Musk曾承诺将Grok调整为政治中立,但此次事件再次引发对其AI模型公正性的质疑。

2 个帖子 - 2 位参与者

阅读完整话题

via LINUX DO - 最新话题 (author: Evan)
「马上开始」

LINUX DO

LINUX DO - 新的理想型社区

Where possible begins.

10 个帖子 - 7 位参与者

阅读完整话题

via LINUX DO - 最新话题 (author: RockKingdom)
[文档分享]小米出品(2021),给父母的智能手机小画册

记得之前看到过,找了半天只有电子版,找客服问了也是只有电子版,但是之前看到过有媒体宣传实体版的,可惜了

本地文件(保存的html文件,发现用工具转PDF有点问题):https://wwli.lanzoue.com/iQlFA2opky4f

在线阅读(小米服务官方): 小米商城

卧槽我刚刚找到了最新版,澎湃OS的,爽到了

智能手机小画册第三版来啦

小米企业网盘 – 分享文件

5 个帖子 - 3 位参与者

阅读完整话题

via LINUX DO - 最新话题 (author: 奶油话梅糖)
旧版人民币有人回收吗?什么价

在老家找到了一些八九十年代用的旧纸币,保存的相对完好,现在有人收这种吗?

2 个帖子 - 2 位参与者

阅读完整话题

via LINUX DO - 最新话题 (author: kongson21)
始皇脚本写好了,兄弟们马上开放LINUX DO Mail申请

指路:
Connect - LINUX DO
12:50更新:已经开放了!

附提醒:

1. 本申请功能没做二次编辑,请慎重考虑邮箱名再提交。
1. 如果你的邮箱名字看起来像是 LINUX DO 官方的某个账号,那将不会审批通过。如:contact、support 等。
1. 出于发信稳定考虑,本邮箱系统使用外部 SMTP Relay,有一定发信频控限制。
1. 请不要开启自动转发功能。 它在你 @linux.do 邮箱收到邮件后会转发到你设定的接收邮箱,这将会触发一次邮件发送。就是你收邮件也消耗发信额度,这是没有必要的浪费。
1. 你可以直接使用 Webmail 收发邮件,也可以使用第三方客户端。客户端配置请见配置页面,苹果自带邮箱客户端注意页面底部说明。
1. 请务必妥善使用本邮箱,共同维护 LINUX DO Mail 声誉。如果恶意发送垃圾邮件,一定会被封号!

12 个帖子 - 12 位参与者

阅读完整话题

via LINUX DO - 最新话题 (author: Douglas·Lee)
请问本科生想找llm相关的工作是不是概率渺茫

湖南双非,想找一份关于llm或者nlp相关的实习,看到许多岗位好像都只要硕士 😥

1 个帖子 - 1 位参与者

阅读完整话题

via LINUX DO - 最新话题 (author: Annex)
如题,电脑上有类似via那样轻量好用支持脚本的浏览器吗?感觉自带的edge或者chrome还是有点太笨重了,占用的内存也大,佬友们有好用的轻量简洁且功能还不错(支持资源嗅探,源代码查看,油猴脚本,广告拦截什么的)的电脑版浏览器推荐

6 个帖子 - 3 位参与者

阅读完整话题

via LINUX DO - 最新话题 (author: Eray)
有了linux.do邮箱第一件事把邮箱拿来干什么?注册?互发一下?畅聊一下

2 个帖子 - 2 位参与者

阅读完整话题

via LINUX DO - 最新话题 (author: unix)
还差一点到3级

佬友们点几个赞

3 个帖子 - 3 位参与者

阅读完整话题

via LINUX DO - 最新话题 (author: Pigeonsz)