[洛谷-P1364] 医院设置

news/2025/11/22 20:46:15/文章来源:https://www.cnblogs.com/jiu-wei-lwj/p/19258569

普通的floyd就不讲了,如果数据量到了1e5以上,这就是一道树的重心的变式,求带权的重心。或者说用树型dp或dfs来优化最小值的查找。最终时间复杂度 \(O(n)\) 。以下代码是第一篇题解的风格变化+注释。

#include <bits/stdc++.h>
#define int long long
using namespace std;
constexpr int maxn=1e4+10;// 题目数据小随便开
constexpr int maxm=2e4+10;
constexpr int INF=LONG_LONG_MAX>>1;typedef struct edge
{int to,nex;
}edge;edge edges[maxn];
int enums,heads[maxn];
int wi[maxn],siz[maxn],tal[maxn];
// siz[i]-以i为根的权值和
// tal[i]-以i为根的权值*路长的和
int ans=INF;void add_edge(int x,int y)
{edges[++enums]={y,heads[x]};// 非常的压抑heads[x]=enums;
}void dfs(int u,int fa,int dep)
{// 初始化siz和tal[1]siz[u]=wi[u];for(int i=heads[u];i;i=edges[i].nex){if(edges[i].to!=fa){dfs(edges[i].to,u,dep+1);//直到没有孩子siz[u]+=siz[edges[i].to];// 加上子树的权值}}tal[1]+=wi[u]*dep;
}void dp(int u,int fa)
{// 从 u到 v,对于子树来说:距离-1,总贡献 -siz[v]。// 对其他点:距离+1,总贡献+siz[1]-siz[v]for(int i=heads[u];i;i=edges[i].nex){if(edges[i].to!=fa){tal[edges[i].to]=tal[u]-2*siz[edges[i].to]+siz[1];dp(edges[i].to,u);}}ans=min(ans,tal[u]);
}signed main()
{int n;int a,b;scanf("%lld",&n);for(int i=1;i<=n;++i){scanf("%lld%lld%lld",&wi[i],&a,&b);if(a){add_edge(i,a);add_edge(a,i);}if(b){add_edge(i,b);add_edge(b,i);}}dfs(1,0,0);dp(1,0);printf("%lld\n",ans);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/973406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现五折交叉验证进行模型训练 -

实现五折交叉验证进行模型训练1、实验目的 熟悉Python 的基本操作,掌握对数据集的读写实现、对模型性能的评估实现的能力; 加深对训练集、测试集、N折交叉验证、模型评估标准的理解。 2、实验内容 (1)利用pandas库…

KingbaseES:为银行核心系统迁移开启新航道 - 详解

KingbaseES:为银行核心系统迁移开启新航道 - 详解2025-11-22 20:38 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; displ…

用 ffmpeg 命令去除视频的重复帧、剪视频、修改视频尺寸 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

20232422 2025-2026-1 《网络与系统攻防技术》实验六实验报告

20232422 2025-2026-1 《网络与系统攻防技术》实验六实验报告 1.实验内容 本次实验是Metasploit工具的实战应用,先通过主机发现、端口扫描完成前期信息搜集,再针对Metasploitable2靶机的4个已知漏洞(Vsftpd后门漏洞…

毕业论文写作全流程:从选题到答辩的完整指南

毕业论文写作挑战重重,本文提供从选题到答辩的完整指南。选题与开题准备部分介绍选题原则方法、开题报告撰写及文献检索整理技巧;论文写作核心流程涵盖大纲搭建、摘要引言结论撰写、正文论证及参考文献规范;修改、降…

html空间如何添加滚动条

在HTML空间(通常指的是一个div元素)中添加滚动条,可以通过CSS样式来实现。以下是一个简单的示例,展示了如何为一个div元素添加垂直滚动条:HTML结构: <!DOCTYPE html> <html lang="en"> &l…

实用指南:Jenkins 持续集成与部署指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年11月DR耐油橡胶热缩管,氟橡胶热缩管,防滑花纹热缩管厂家最新推荐:耐老化性能实测榜单

2025年11月DR耐油橡胶热缩管,氟橡胶热缩管,防滑花纹热缩管厂家最新推荐:耐老化性能实测榜单在热缩管市场中,DR耐油橡胶热缩管、氟橡胶热缩管以及防滑花纹热缩管等产品凭借各自独特的性能,在众多领域发挥着重要作用…

2025年11月DR耐油橡胶热缩管,线缆标识热缩管,防滑花纹热缩管厂商推荐:耐油等级与使用寿命解析

2025年11月DR耐油橡胶热缩管,线缆标识热缩管,防滑花纹热缩管厂商推荐:耐油等级与使用寿命解析在众多热缩管厂商中,广州容信塑胶制品有限公司是一家值得关注的企业。该公司成立于2009年1月,是一家专业的热缩套管、…

[游记]CSP 2025

和一位,能不能比去年考得好啊 /ll Day -114514 以领先分数线 \(\Theta(1)\) 分的优势苟进了复赛。 Day 10.28 csp 前最后一场模拟赛,获得了极低的分数,太有信心了! 深度思考一整场 1log 怎么做,结果是不知道经典 …

11.22题解

A.栞 考虑面积公式 \(S = \frac{1}{2} ab \sin C\),则 \(4S^2 = ab(1 - \cos^2C)\),则我固定 ab 的情况下,我要 \(\sinC\) 最大,也就是 cos 绝对值最小。 考虑定序,若令 \(a > b > c\) 那么 C 一定是锐角,…

电梯调度问题的三次迭代

电梯调度问题的三次迭代 目录第一章 引言第二章 设计与分析第三章 踩坑心得第四章 改进建议第五章 总结第一章 引言 在现代城市生活中,电梯作为垂直交通的核心工具,其运行效率直接影响着人们的出行体验与楼宇的整体运…

【minimap2】一定要注意组合参数

当我需要minimap2在输出sam文件中包含secondary alignment时,我认为默认的输出开关就应该是开着的,因此没有设置--secondary=yes,使用以下参数:minimap2 -ax sr -t $threads ${INDEX} ${fastq_dictory}/${prefix}_…

3-数据库

3.数据库 2025.11.13 Day14 3.1 一条SQL查询语句是如何执行的? 连接器: 连接器负责跟客户端建立连接、获取权限、维持和管理连接。 查询缓存: MySQL 拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语…

4-java

4.java 2025.11.20 DAY23 4.1 String、StringBuffer、StringBuilder的区别 在 Java 中,String、StringBuilder 和 StringBuffer 都是用于处理字符序列的类。它们最核心的区别在于可变性、线程安全和性能。 1. 核心区别…

重构高阶智驾:天瞳威视以国产芯片,解锁Robotaxi平民化路径 - 实践

重构高阶智驾:天瞳威视以国产芯片,解锁Robotaxi平民化路径 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &quo…

1-计算机网络

1.计算机网络 2025.10.29 DAY01 1.1 介绍一下TCP/IP模型和OSI模型的区别 OSI:物联网叔会使用 TCP/IP:接网叔用 OSI模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,它将网络通信精细地…

实用指南:MCU定点计算深度解析:原理、技巧与实现

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2-操作系统

2.计算机组成原理 2025.11.07 DAY10 2.1 进程和线程之间有什么区别 线程是程序执行的最小单位,线程是进程的子任务,是进程内的执行单元。 一个进程至少有一个线程,一个进程可以运行多个线程,这些线程共享同一块内存…

html空间如何添加图片

在HTML空间中添加图片,可以通过以下两种方法: 内联方式在HTML代码中,使用<img>标签插入图片。例如,要插入一张名为“example.jpg”的图片,且该图片位于与HTML文件相同的目录下,可以使用以下代码:<img …