news 2026/4/23 17:24:11

算法竞赛备考冲刺必刷题(C++) | 洛谷 P1364 医院设置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法竞赛备考冲刺必刷题(C++) | 洛谷 P1364 医院设置

本文分享的必刷题目是从蓝桥云课洛谷AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。

欢迎大家订阅我的专栏:算法题解:C++与Python实现!

附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总


【题目来源】

洛谷:P1364 医院设置 - 洛谷

【题目描述】

设有一棵二叉树,如图:

其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为1 11。如上图中,若医院建在1 11处,则距离和= 4 + 12 + 2 × 20 + 2 × 40 = 136 =4+12+2\times20+2\times40=136=4+12+2×20+2×40=136;若医院建在3 33处,则距离和= 4 × 2 + 13 + 20 + 40 = 81 =4\times2+13+20+40=81=4×2+13+20+40=81

【输入】

第一行一个整数n nn,表示树的结点数。

接下来的n nn行每行描述了一个结点的状况,包含三个整数w , u , v w, u, vw,u,v,其中w ww为居民人口数,u uu为左链接(为0 00表示无链接),v vv为右链接(为0 00表示无链接)。

【输出】

一个整数,表示最小距离和。

【输入样例】

5 13 2 3 4 0 0 12 4 5 20 0 0 40 0 0

【输出样例】

81

【算法标签】

《洛谷 P1364 医院设置》 #动态规划DP# #树形数据结构# #广度优先搜索BFS# #最短路# #树的重心#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=105,M=N*2;// 定义常量,N: 最大节点数,M: 最大边数intn,w[N],u,v,ans=1e9,sum,dep[N];// n: 节点数, w: 节点权重, ans: 最小总代价inth[N],e[M],ne[M],idx;// 邻接表存储树voidadd(inta,intb){e[idx]=b,ne[idx]=h[a],h[a]=idx++;// 添加无向边}// DFS计算深度voiddfs(intu,intfa)// u: 当前节点, fa: 父节点{if(fa)// 如果有父节点dep[u]=dep[fa]+1;// 当前节点深度 = 父节点深度 + 1for(inti=h[u];i!=-1;i=ne[i])// 遍历当前节点的所有邻接点{intj=e[i];// 邻接节点jif(j==fa)continue;// 如果是父节点,跳过dfs(j,u);// 递归遍历子节点}}intmain(){memset(h,-1,sizeof(h));// 初始化邻接表cin>>n;// 输入节点数// 输入每个节点的权重和子节点for(inti=1;i<=n;i++){cin>>w[i]>>u>>v;// 权重, 左子节点, 右子节点if(u)// 如果有左子节点add(i,u),add(u,i);// 添加双向边if(v)// 如果有右子节点add(i,v),add(v,i);// 添加双向边}// 尝试每个节点作为根for(inti=1;i<=n;i++){sum=0;// 重置总代价memset(dep,0,sizeof(dep));// 重置深度数组dfs(i,0);// 以i为根进行DFS,计算各节点深度// 计算以i为根的总代价for(intj=1;j<=n;j++)sum+=w[j]*dep[j];// 代价 = 权重 × 深度ans=min(ans,sum);// 更新最小代价}cout<<ans<<endl;// 输出结果return0;}

【运行结果】

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

这次出行让我感觉到异地组网稳定且连通率高的重要性……

小白今天在单位下班匆匆忙忙就跑到车站去等车了。本来想着今天可以出一篇教程的&#xff0c;谁知道天不遂人意啊&#xff01; 为什么会有这篇感慨的文章呢&#xff1f;因为今天回到老家之后&#xff0c;发现在广州搭建的设备好像访问都不太顺畅。 这段时间为了测试虚拟局域网的…

作者头像 李华
网站建设 2026/4/23 15:32:18

Z-Image-Turbo输入验证:防止恶意提示词注入攻击

Z-Image-Turbo输入验证&#xff1a;防止恶意提示词注入攻击 引言&#xff1a;AI图像生成中的安全盲区 随着AIGC技术的普及&#xff0c;AI图像生成模型如阿里通义Z-Image-Turbo在创意设计、内容生产等领域展现出巨大潜力。然而&#xff0c;在便捷的背后&#xff0c;提示词&#…

作者头像 李华
网站建设 2026/4/23 15:32:11

博客精选|一位开发者亲测M2FP:从部署到应用全过程记录

博客精选&#xff5c;一位开发者亲测M2FP&#xff1a;从部署到应用全过程记录 &#x1f9e9; M2FP 多人人体解析服务 (WebUI API) 项目背景与技术选型动因 在计算机视觉领域&#xff0c;人体解析&#xff08;Human Parsing&#xff09; 是一项比通用语义分割更精细的任务——它…

作者头像 李华
网站建设 2026/4/23 14:38:21

使用MGeo优化城市急救救护车调度路径

使用MGeo优化城市急救救护车调度路径 引言&#xff1a;城市急救响应中的路径调度挑战 在城市应急医疗系统中&#xff0c;快速、精准的救护车调度是决定患者生存率的关键因素之一。然而&#xff0c;现实中存在大量因地址表述不规范、地名模糊或数据异构导致的定位延迟问题。例如…

作者头像 李华
网站建设 2026/4/23 15:30:36

显存不足做不了人体解析?M2FP CPU版完美适配低算力环境

显存不足做不了人体解析&#xff1f;M2FP CPU版完美适配低算力环境 &#x1f9e9; M2FP 多人人体解析服务 (WebUI API) 在当前AI视觉任务中&#xff0c;人体解析&#xff08;Human Parsing&#xff09; 正在成为智能服装推荐、虚拟试衣、行为分析等场景的核心技术。然而&…

作者头像 李华