news 2026/8/11 3:34:55

C++课后习题训练记录Day184

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++课后习题训练记录Day184

1.练习项目 :

问题描述

给定一棵树,树中包含 n 个结点,编号为 1∼n ,以及 n−1 条无向边,每条边都有一个权值。

现从树中任选一个点,从该点出发,在不走回头路的情况下找出二条到其他点的路径,这二条路径不能有公共边,请问这二条路径长度的乘积最大可以是多少。

注:如果从该点出发只有一个方向可以走,换句话说该点入度出度为 1,则乘积为 0 。

输入格式

第一行输入一个整数 n。

接下来 n−1 行,每行输入包含三个整数 ai,bi,ci​,表示点 ai​ 和 bi​ 之间存在一条权值为 ci​ 的边。

输出格式

输出一个整数,为二条路径长度乘积的最大值。

2.选择课程

在蓝桥云课中选择题库,选择题号3649并开始练习。

3.开始练习

(1)源码 :

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const int N=1e5+10;
int n;
vector<pair<int,int>>g[N];
int d1[N],d2[N],p1[N],p2[N],up[N];

void dfs1(int u,int f)
{
for(const auto&v:g[u]){
if(v.first==f)continue;
dfs1(v.first,u);
int len=v.second+d1[v.first];
if(len>=d1[u]){
d2[u]=d1[u];
p2[u]=p1[u];
d1[u]=len;
p1[u]=v.first;
}else if(len>d2[u]){
d2[u]=len;
p2[u]=v.first;
}
}
}

void dfs2(int u,int f)
{
for(const auto&v:g[u]){
if(v.first==f)continue;
if(p1[u]==v.first){
up[v.first]=max(up[u],d2[u])+v.second;
}else{
up[v.first]=max(up[u],d1[u])+v.second;
}
dfs2(v.first,u);
}
}

int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>n;
for(int i=1;i<n;i++){
int a,b,c;cin>>a>>b>>c;
g[a].push_back({b,c});
g[b].push_back({a,c});
}
dfs1(1,0);
dfs2(1,0);
ll ans=0;
for(int i=1;i<=n;i++){
ans=max(ans,(ll)max((ll)d1[i]*d2[i],(ll)d1[i]*up[i]));
}
cout<<ans<<'\n';
return 0;
}

(2)检验结果

对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。

(3)练习心得:

注意每段代码末尾的分号是否存在 ,如不存在则需即使补充;输入法 是否切换为英语模式;语法是否错误。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/11 3:34:09

中兴光猫超级权限解锁终极指南:三步获得工厂模式控制权

中兴光猫超级权限解锁终极指南&#xff1a;三步获得工厂模式控制权 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 你是否遇到过想要调整光猫设置却被权限限制的困扰&#xff1f;zteOn…

作者头像 李华
网站建设 2026/8/11 3:33:59

AI Agent可观测性实战:基于OpenTelemetry构建透明决策链路

1. 项目概述&#xff1a;为什么我们需要“看见”Agent的思考过程&#xff1f;在AI Agent&#xff08;智能体&#xff09;技术日益成为应用开发核心的今天&#xff0c;我们正面临一个普遍的困境&#xff1a;Agent的决策过程就像一个“黑盒”。你输入一个复杂的任务&#xff0c;比…

作者头像 李华
网站建设 2026/8/11 3:30:10

Kafka在大数据架构中的核心应用与优化实践

1. Kafka在大数据架构中的核心定位Kafka作为分布式消息队列系统的代表&#xff0c;已经成为现代大数据架构中不可或缺的基础组件。它最初由LinkedIn开发&#xff0c;后来成为Apache顶级项目&#xff0c;其高吞吐、低延迟的特性完美契合了大数据场景下海量数据流转的需求。在实际…

作者头像 李华
网站建设 2026/8/11 3:28:56

Windows蜜罐部署实战:从零构建主动防御与威胁感知系统

1. 为什么要在Windows上部署蜜罐&#xff1f;一个被忽视的防御视角在大多数人的印象里&#xff0c;蜜罐&#xff08;Honeypot&#xff09;似乎是安全研究员、大型企业或者云服务商的专属玩具&#xff0c;通常部署在Linux服务器上&#xff0c;用来捕获针对SSH、Web服务的自动化攻…

作者头像 李华
网站建设 2026/8/11 3:28:12

MyBatis拦截器原理与插件开发实战指南

1. MyBatis插件机制的核心设计思想MyBatis的Interceptor&#xff08;拦截器&#xff09;是其插件体系的核心实现机制&#xff0c;这种设计本质上采用了责任链模式。当我们需要在SQL执行过程中插入自定义逻辑时&#xff0c;不必修改框架源码&#xff0c;只需实现特定接口即可介入…

作者头像 李华
网站建设 2026/8/11 3:23:44

AutoCAD 2010一键搞定PCB出图排版

画完 PCB&#xff0c;出图阶段才是最折磨人的&#xff1a;一张图纸上几十个图层叠在一起&#xff0c;要按图层拆开、对齐、摆进图框、标上名称……手动操作一次就要大半天&#xff0c;改版之后还得重来一遍。 如果你也在用 AutoCAD 2010 做 PCB 出图&#xff0c;这款工具能帮你…

作者头像 李华