EOJ Monthly 2020.9 B. 健康监测计划

2024-02-04 21:38

本文主要是介绍EOJ Monthly 2020.9 B. 健康监测计划,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

B. 健康监测计划

单点时限: 2.0 sec

内存限制: 256 MB

QQ 小方接到了来自学校防控疫情指挥部的任务,协助指挥部部署校园内的健康监测站。

华东师范大学共有 n 栋楼房,编号为 1,2,…,n,并有 n−1 条双向联通的道路连接这些楼房,使得任意两栋楼房之间有且仅有一条简单路径(一条简单路径是指,从一栋大楼出发,不经过重复大楼,并在另一栋大楼结束的路径)。学校为了贯彻落实常态化疫情防控政策,决定选择一些楼房,在其中各设置一个健康监测点,实时监测路过的同学的健康状况。

虽然自动化检查仪器已经在全校普及,但是监测的过程依然不可避免地会影响学生的出入便捷性。所以学校需要精心安排监测点的位置,使得监测点数量尽可能多,而且尽量不对师生们造成太大的麻烦。具体而言,对于任意一条从某一栋楼开始在另一栋楼结束的简单路径,你需要保证路径上的监测点的数量不超过 k(包括起点和终点上的监测点),并在此前提下最大化监测点的数量。

输入格式

第一个输入两个整数 n 和 k(2≤n≤106,0≤k≤n),表示华师大楼房的个数以及任意一条简单路径上的监测点数目上限。

接下来 n−1 行,每行输入两个不同的正整数 u,v(1≤u,v≤n),表示有一条直接连接 u 号楼房和 v 号楼房的双向道路。

输出格式

一行,一个整数,表示最多能放置多少个健康监测站。

样例

input

10 1
1 4
1 2
2 5
2 3
2 7
2 8
5 6
6 10
8 9

output

1

input

8 2
5 1
7 1
2 1
4 7
6 7
8 6
3 4

output

4
思路:考虑k=1的时候,答案是1,k=2的时候,答案是所有叶子结点的个数,k=3的时候,答案是所有叶子结点的个数+1,k=4的时候,答案是所有叶子结点的个数+去掉这些叶子结点之后的叶子结点个数,不难推测出k是偶数的时候,答案是所有深度为小于等于k/2的结点个数总和,k是奇数的时候,答案是深度为小于等于k/2的结点个数+1。

#include<cstdio>
#include<queue>
#include<cstring>
using namespace std;const int maxn = 2e6 + 100;
struct node{int to, next;
}edge[2 * maxn];int n, k;
int cnt = 0;
int head[2 * maxn];
int indegree[maxn];
int cntt[maxn];
int ans[maxn];void add(int u, int v)
{edge[cnt].to = v;edge[cnt].next = head[u];head[u] = cnt++;
}queue<int>q;
void bfs()
{while(!q.empty()){int u = q.front();q.pop();//找到与u相连的边for(int i = head[u]; ~i; i = edge[i].next){int v = edge[i].to;cntt[v] = cntt[u] + 1;//入度为2的时候,减去叶子结点,只剩下一个结点,if(--indegree[v]==1){ans[cntt[v]]++;q.push(v);}}}
}void input()
{scanf("%d%d", &n, &k);memset(head, -1, sizeof(head));for(int i = 1; i < n; i++){int u, v;scanf("%d%d", &u, &v);indegree[u]++, indegree[v]++;add(u, v), add(v, u);}
}int main()
{input();for(int i = 1; i <= n; i++){//找到所有入度为1的结点(叶子节点)if(indegree[i] == 1){cntt[i] = 1;ans[1]++;q.push(i);}}bfs();int tot = 0;for(int i = 1; i <= k / 2; i++){tot += ans[i];}if(k & 1)tot++;tot = min(tot, n);printf("%d\n", tot);return 0;
}

 

这篇关于EOJ Monthly 2020.9 B. 健康监测计划的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/678870

相关文章

Oracle数据库执行计划的查看与分析技巧

《Oracle数据库执行计划的查看与分析技巧》在Oracle数据库中,执行计划能够帮助我们深入了解SQL语句在数据库内部的执行细节,进而优化查询性能、提升系统效率,执行计划是Oracle数据库优化器为... 目录一、什么是执行计划二、查看执行计划的方法(一)使用 EXPLAIN PLAN 命令(二)通过 S

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

电力系统中的A类在线监测装置—APView400

随着电力系统的日益复杂和人们对电能质量要求的提高,电能质量在线监测装置在电力系统中得到广泛应用。目前,市场上的在线监测装置主要分为A类和B类两种类型,A类和B类在线监测装置主要区别在于应用场景、技术参数、通讯协议和扩展性。选择时应根据实际需求和应用场景综合考虑,并定期维护和校准。电能质量在线监测装置是用于实时监测电力系统中的电能质量参数的设备。 APView400电能质量A类在线监测装置以其多核

ZOJ Monthly, August 2014小记

最近太忙太忙,只能抽时间写几道简单题。不过我倒是明白要想水平提高不看题解是最好的了。 A  我只能死找规律了,无法证明 int a[50002][2] ;vector< vector<int> > gmax , gmin ;int main(){int n , i , j , k , cmax , cmin ;while(cin>>n){/* g

【多系统萎缩患者必看】✨维生素补充全攻略,守护你的健康每一天!

亲爱的朋友们,今天我们要聊一个既重要又容易被忽视的话题——‌多系统萎缩患者如何科学补充维生素‌!🌟 在这个快节奏的生活中,健康成为了我们最宝贵的财富,而对于多系统萎缩(MSA)的患者来说,合理的营养补充更是维护身体机能、提升生活质量的关键一步。👇 🌈 为什么多系统萎缩患者需要特别关注维生素? 多系统萎缩是一种罕见且复杂的神经系统疾病,它影响身体的多个系统,包括自主神经、锥体外系、小脑及锥

《计算机视觉工程师养成计划》 ·数字图像处理·数字图像处理特征·概述~

1 定义         从哲学角度看:特征是从事物当中抽象出来用于区别其他类别事物的属性集合,图像特征则是从图像中抽取出来用于区别其他类别图像的属性集合。         从获取方式看:图像特征是通过对图像进行测量或借助算法计算得到的一组表达特性集合的向量。 2 认识         有些特征是视觉直观感受到的自然特征,例如亮度、边缘轮廓、纹理、色彩等。         有些特征需要通

Claude Enterprise推出计划

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/ 今天推出的Claude Enterprise计划,专为企业打造安全的

为备份驱动器制定备份计划:维护数据的3大方法

时间:2014-02-26 14:49 来源:网管之家 字体:[大 中 小]   您可能已经对您的电脑进行了备份,但其实这样还是远远不够的,其并非如您所认为的那样安全。您企业备份驱动器上的文件可能与您的主系统上的文件一样,容易受到灾难的影响。根据最近流行的恶意软件CryptoLocker的感染途径显示,连接到PC的外置驱动器——辅助硬盘驱动器,例如,用于备份的外部USB硬盘驱动器,可以像

Linux的系统性能监测参数获取方法介绍

目前的工程需要简单的监测一下Linux系统的:CPU负载、内存消耗情况、几个指定目录的磁盘空间、磁盘I/O、swap的情况还有就是网络流量。   Linux下的性能检测工具其实都有很多。   mrtg(http://people.ee.ethz.ch/~oetiker/webtools/mrtg/)就是一个很不错的选择。不过用mrtg就要装sysstat、apache、snmp、pe

2025届计算机毕业设计:如何构建Java SpringBoot+Vue个人健康档案管理系统?

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 | SpringBoot/SSM Python实战项目 | Django 微信小程序/安卓实战项目 大数据实战项目 ⚡⚡文末获取源码 文章目录