题解-会议

[NOIP][C++]洛谷 P1395 会议(树的重心) 摘要 本文解决了一个在树形村庄中选择最佳会议地点的问题。给定n个村民和n-1条连接路径构成的树形结构,要求找到一个村民家作为会议地点,使得所有村民到该点的距离之和最小。通过两次深度优先搜索(DFS)实现:第一次DFS计算子树大小并确定树的重心(最优会议点),第二次DFS计算该点到所有其他点的距离之和。算法时间复杂度为O(n),适用于大规模数据(n≤5×10^4)。最终输出最优会议点编号及最小距离和,若有多解则选择编号最小者。 阅读详情

题目描述

有一个村庄居住着n个村民,有n-1条路径使得这n个村民的家联通,每条路径的长度都为1。现在村长希望在某个村民家中召开一场会议,村长希望所有村民到会议地点的距离之和最小,那么村长应该要把会议地点设置在哪个村民的家中,并且这个距离总和最小是多少?若有多个节点都满足条件,则选择节点编号最小的那个点。

输入格式

第一行。一个数n,表示有n个村民。

接下来n-1行,每行两个数字a和b,表示村民a的家和村民b的家之间存在一条路径。

输出格式

一行输出两个数字x和y

x表示村长将会在哪个村民家中举办会议

y表示距离之和的最小值

输入输出样例

输入 #1
4
1 2
2 3
3 4
输出 #1
2 4
说明/提示
【数据范围】

70%数据n<=1000

100%数据n<=50000

题目解析&代码

首先,阅读题目可以看出来,这道题目实际上就是求树的重心

#include<bits/stdc++.h>
using namespace std;
const int maxn=60000;
int n,into[maxn],tot;
struct node{
	int x,y,next;
}e[maxn<<1];
void add(int x,int y){
	e[tot++].x=x;
	e[tot].y=y;
	e[tot].next=into[x];
	into[x]=tot;
}
int word[maxn];
int dfs1(int x,int y,int z){
	word[x]=1;
	int az=z;
	for(register int i=into[x];i;i=e[i].next){
		int u=e[i].y;
		if(u==y)continue;
		az+=dfs1(u,x,z+1);
		word[x]+=word[u];
	}
	return az;
}
int f[maxn];
void dfs2(int k,int fu){
	for(register int i=into[k];i;i=e[i].next){
		int u=e[i].y;
		if(u==fu)continue;
		f[u]=f[k]+(n-word[u])-word[u];
		dfs2(u,k);
	}
}
int main(){
	cin>>n;
	for(register int i=1,x,y;i<n;i++){
		cin>>x>>y;
		add(x,y);
		add(y,x);
	}
	f[1]=dfs1(1,0,0);
	dfs2(1,0);
	int ans=0x3f3f3f3f,cnt=1;
	for(register int i=1;i<=n;i++){
		if(ans>f[i]){
			ans=f[i];
			cnt=i;
		}
	}
	cout<<cnt<<" "<<ans;
	return 0;
}
【算法题解】leetcode 253 会议室II (贪心+堆) si​andei​给定一个会议时间安排的数组,每个会议时间都会包括开始和结束的时间 [[s1,e1],[s2,e2],…] (si < ei), 为避免会议冲突,同时要考虑充分利用会议室资源,请你计算多少间会议室,才能满足这些会议安排。: 3。 阅读详情

相关推荐

【华为OD机考真题】- 会议室占用时间(C&D卷)(Java)

🔔本文收录于「2025华为OD机试真题(Java版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!本人所写题库均搜集于互联网。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新皆可阅读使用!

**My Coding Family** 1836

2020-08-11

http://icpc.upc.edu.cn/problem.php?id=14881 题目 14881: 会议 题目描述 有一个村庄居住着n个村民,有n-1条路径使得这n个村民的家联通,每条路径的长度都为1。现在村长希望在某个村民家中召开一场会议,村长希望所有村民到会议地点的距离之和最小,那么村长应该要把会议地点设置在哪个村民的家中,并且这个距离总和最小是多少?若有多个节点都满足条件,则选择节点编号最小的那个点。 输入 第一行。一个数n,表示有n个村民。 接下来n-1行,每行两个数字a和b,表示村民a的家

TimWcx的博客 566

题解:洛谷 P1395 会议

现在村长希望在某个村民家中召开一场会议,村长希望所有村民到会议地点的距离之和最小,那么村长应该要把会议地点设置在哪个村民的家中,并且这个距离总和最小是多少?若有多个节点都满足条件,则选择节点编号最小的那个点。等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。个村民的家联通,每条路径的长度都为。的家之间存在一条路径。表示距离之和的最小值。#普及# #DFS-树#

团爸讲算法 331

最小生成树 / 1135. 最低成本联通所有城市(M)

最小生成树 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # 返回最小的花费代价使得这n户人家连接起来 # @param n int n户人家的村庄 # @param m int m条路 # @param cost int二维数组 一维3个参数,表示连接1个村庄到另外1个村庄的花费的代价 # @return int # #克鲁斯卡尔(选最小边,直至有n-1条边) class Solution: def miniSpanningTree(self , ..

newCraftsman的博客 313

题解:瑞学堂 瑞瑞的会议安排

题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。问题,关键在于将会议按结束时间排序后,枚举两段的分界点,分别计算前缀和后缀的最大不重叠会议数。,然后在第一个时间段内参加若干场会议(这些会议的开始时间和结束时间必须全部包含在。,每段内部不能同时参加重叠会议,求最多能参加的会议总数。瑞瑞是一家科技公司的CEO,每天都要参加许多场会议。由于时间冲突,瑞瑞不可能参加所有的会议。输出一个整数,表示瑞瑞最多能参加的会议数量。内),并且要求他参加的会议总数。

团爸讲算法 177

SpringBoot项目整合达梦数据库(MYSQL 转换 达梦数据库)

注意:当迁移过程中出现下面问题时,如有触发器或者外键,需要先关掉触发器和外键,然后进行迁移,不然会导致迁移失败。(2)dm.ini修改【#compatibility】的【COMPATIBLE_MODE】=4。3、添加用户:如果导入的DM数据库需要和MYSQL的用户一样,添加ROOT用户。方法一:服务器配置:设置系统兼容性(DM控制台工具),兼容MySQL。服务器配置又该有两种方式:①DM控制台工具修改;MYSQL的数据表转换成DM的数据表时,点击转换按钮。在这里操作:MYSQL数据库迁移至DM数据库。

m0_74824635的博客 2013

换根dp 洛谷+upc

题目描述 有一个村庄居住着 nn 个村民,有 n-1n−1 条路径使得这 nn 个村民的家联通,每条路径的长度都为 11。现在村长希望在某个村民家中召开一场会议,村长希望所有村民到会议地点的距离之和最小,那么村长应该要把会议地点设置在哪个村民的家中,并且这个距离总和最小是多少?若有多个节点都满足条件,则选择节点编号最小的那个点。 输入格式 第一行,一个数 nn,表示有 nn 个村民。 接下来 n-1n−1 行,每行两个数字 aa 和 bb,表示村民 aa 的家和村民 bb 的家之间存在一条路径。

m0_61949623的博客 1362

【大二组培训】2017年电子设计大赛H题总结(软件部分)

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt im

HAIBARA的博客 3020

最小生成树

题目描述 一个有n户人家的村庄,有m条路连接着。村里现在要修路,每条路都有一个代价,现在请你帮忙计算下,最少需要花费多少的代价,就能让这n户人家连接起来。 示例1 输入 3,3,[[1,3,3],[1,2,1],[2,3,1]] 返回值 2 题解:题目中的vector中是由多个列表组成,每个列表只有三个元素,分别表示边的起点,边的终点以及边的权重信息。 使用kruskal算法来实现本题目。算法原理大致如下, 将所有边的全权重信息排序,时间复杂度为O(mlogm) m:边数 枚举每条边a,b,及其权

yangyangcome的博客 1033

CentOS 7升级GCC踩坑记:明明装了centos-release-scl,为啥找不到devtoolset-9-gcc-c++?

本文详细记录了在CentOS 7系统中升级GCC时遇到的`devtoolset-9-gcc-c++`不可用问题及其解决方案。通过分析`centos-release-scl`安装不完整的原因,提供了从清理残留、重新安装仓库配置到完整安装devtoolset-9工具链的全套操作指南,帮助开发者彻底解决类似环境配置难题。

weixin_29252171的博客 244

STM32 RTC_WaitForSynchro()死循环问题分析与LSI时钟优化实践

本文深入分析了STM32使用LSI时钟源时,调用RTC_WaitForSynchro()函数陷入死循环的根本原因。问题核心在于RTC时钟域未正确使能,导致硬件同步标志RSF无法置位。文章提供了通过显式调用RCC_RTCCLKCmd(ENABLE)函数启用RTC时钟总开关的解决方案,并分享了编写健壮RTC/BKP初始化代码、增加超时机制等最佳实践,确保系统稳定运行。

weixin_29185493的博客 510

洛谷P1395 会议 做题反思(2024.3.10)

现在村长希望在某个村民家中召开一场会议,村长希望所有村民到会议地点的距离之和最小,那么村长应该要把会议地点设置在哪个村民的家中,并且这个距离总和最小是多少?若有多个节点都满足条件,则选择节点编号最小的那个点。个村民的家联通,每条路径的长度都为。表示村长将会在哪个村民家中举办会议。的家之间存在一条路径。表示距离之和的最小值。

weixin_73381974的博客 2358

还在用 RaiDrive/Rclone 挂载网盘?教您使用Windows 原生 WebDAV 丝滑直连 AList/Openlist,让你的网盘秒变本地硬盘!

网盘文件分散管理?😩 别再依赖第三方工具了!本文教你如何在 Windows 下,利用原生 WebDAV 功能,将 Openlist 网盘直接映射为本地硬盘!💻 操作简单,告别繁琐,让你的云端文件像本地文件一样丝滑!🚀 轻松实现高效管理,快来体验吧!

XiaoqiangClub的博客 2972

P1395 会议 题解

博客园同步 原题链接 简要题意: 给定 nnn 个节点的一棵树,用 dis(x,y)\text{dis}(x,y)dis(x,y) 表示 x,yx,yx,y 的距离,sx=∑y=1ndis(x,y)s_x = \sum_{y=1}^n \text{dis}(x,y)sx​=∑y=1n​dis(x,y).求最小的 xxx 和 sxs_xsx​.(其实就是求树上到一点距离之和最小的点和该距离) n≤5×104n \leq 5 \times 10^4n≤5×104. 数据加强:n≤107n \leq 10^7n≤

bifanwen的博客 936

银河麒麟编译libjpeg库并配置qt环境

银河麒麟下编译libjpeg库并配置qt环境验证

小米的修行之路 1011

lammps蒙特卡洛MC模拟案例

在lammps中,和MC相关的模拟命令有三个:fix gcmc、fix atom/swap、fix sgcmc。在一个lammps模拟中,mc和md可同时存在,间隔运行,所以设置fix sgcmc命令的同时,可以同时设置系综(nve、nvt或者npt)。lammps官网自带案例中也有一个fix sgcmc的案例,主要模拟FeCu合金的MC建模。sgcmc命令可应用到合金的模拟中,如短程有序模拟。MC运行间隔为100步,最终的浓度比例为0.02,也就是2%的Fe原子交换为Cu原子。大家好,我是小马老师。

lammps_jiayou的博客 1824

leetcode 会议室题解

leetcode的会议室的题解,包含两种解法

huangjin_1995的博客 484

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

贪心思想--最大会议数

如花美眷,似水流年,回得了过去,回不了当初。 题目大意:首先给出会议个数,然后给出每个会议的开始和结束的时间,问最终最多能参加多少场会议。 题解:如图所示,贪心嘛,不可避免要排序,这里,想到按什么排序还是有一定困难的(对我来说

0k-ok 524

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

題解/算法 {6170. 会议室 III}

1

qq_66485519的博客 238

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【题解】[APIO2009]会议中心

【题解】[P3626 APIO2009]会议中心 真的是一道好题!!!刷新了我对倍增浅显的认识。 此题若没有第二份输出一个字典序的方案,就是一道\(sort+\)贪心,但是第二问使得我们要用另外的办法。 考虑到题目的性质,贪心地想,假如我们已经选择了区间\(i\),我们就可以盖将自其变者而观之,则天地曾不能以一瞬;自其不变者而观之,则物与我皆无尽也,而又何羡乎!确定下一个是谁,虽世殊事异,所以兴怀...

weixin_30814223的博客 236

P1395 会议题解

该题目要求在一棵由n个节点和n-1条边构成的树中,找到一个节点作为会议地点,使得所有其他节点到该节点的距离之和最小。通过分析可知,树的重心具有使所有点到其距离和最小的性质。 解题思路分为两步: 使用DFS遍历树,计算每个节点的最大子树大小,确定树的重心 以重心为根再次DFS,计算所有节点到重心的距离之和 代码实现采用两次DFS遍历:第一次确定重心,第二次计算最小距离和。算法时间复杂度为O(n),适用于n≤5×10^4的数据规模。最终输出满足条件的节点编号(如有多个取最小)及最小距离和。

咸鱼爱学习的博客 427

LeetCode 252 会议室 III(Meeting Rooms III)题解与模拟面试

本题为区间调度经典变形,核心在于统计最大并发区间数。利用最小堆维护最早结束时间,实现 O(n log n) 解决。模板可复用于「会议室 II」「区间交集」「区间插入」等相关题目。

10年数据\经营分析经验,现任大厂数据分析负责人 1402

LeetCode 1751. 最多可以参加的会议数目 II - 详细题解 (动态规划 + 手写二分查找)

本文解析了LeetCode 1751题"最多可以参加的会议数目II",这是一道结合区间调度与价值最大化的动态规划问题。文章提出按结束时间排序会议后,使用二维DP记录前i个会议参加j次的最大价值,并通过二分查找高效定位不冲突的会议。关键点在于状态转移方程的设计和二分查找的边界处理,最终实现O(N·K·logN)的时间复杂度。代码实现中特别注重了索引映射关系和二分查找的细节处理。

m0_52225681的博客 1170

洛谷P1395 会议 题解

$题目$ 为什么这个题会有图论的标签啊,虽然图论也包括找树的重心,可是这很容易让人联想到最短路,但不得不说,这是一个典型的找树的重心模板题。 树的重心是什么? 找到一个点,其所有的子树中最大的子树节点数最少,则这个点便是树的重心。 而我们找树的重心该怎么找呢,我们可以从定义入手,我们可以搜索。 我们先设任意一个点为树的根(比如1号节点),这样就把这棵树变成了有根树。 然后我们可以求...

weixin_30575309的博客 381

第四届先进材料与机械电子国际学术会议(ICAMM 2024)

经典dp:dp[i],表示以i结尾的子串,连续子数组最大和为dp[i]递推dp[i]分类:dp[i。今天tp联洲三面,面试官先讲了一大堆岗位需求,让我根据匹配点说经历,我说的就是一团糟,因为本身我就是。老哥们,现在大数据好卷那,之前在亚信实习了快一年(数据开发),都是用数据中台来处理数据,不怎么写SQ。美的 库卡自动化机械(不是,我电子电气的,和hr说了,还是让我来)调试机器人面经hr + 专业技术官。60min1.翻转单词序列,A2.二叉树展开链表,A3.线程进程,线程之间,进程之间切换的开销,进程。

每天多一点干货 1110
上一篇: CSP-J 2019总结
下一篇: 关于博客园样式美化
Cancelleds
博客等级 码龄8年 1110粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值