1600*A. Linova and Kingdom(DFS优先队列贪心)
Problem - 1336A - Codeforces
Linova and Kingdom - 洛谷

解析:
开始认为分情况讨论 k 小于等于叶子结点和大于叶子结点的情况,然后选择深度最深的叶子结点和子孙数量最小的结点,但是发现如果把某一个非叶子结点选取,那么其子孙的贡献都会减少。
考虑贪心,首先DFS出每个节点的深度deep(根节点为 0 )和每个节点的子孙结点个数 num(不带本身),这样如果某个结点被选取,那么其贡献为 deep - num ,所以我们选取最大的 k 个结点累计即可。
此处贪心的正确性证明:如果我们要选择某个结点,那么他的所有子孙结点肯定要被选择。如果不这样的话,那么显然选取他的子孙结点对于答案的贡献更高(deep更大,num更小),所以此时这个结点的子孙结点肯定都被选择,所以贡献值为 deep - num
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+5;
int n,k,dis[N];
vector<int>e[N];
priority_queue<int>q;
int dfs(int u,int deep,int fa){dis[u]=deep;if(e[u].size()==1&&u!=1){ //叶结点 q.push(dis[u]);return 1;}int cnt=0;for(int i=0;i<e[u].size();i++){if(e[u][i]!=fa) cnt+=dfs(e[u][i],deep+1,u);}q.push(dis[u]-cnt); //优先队列统计 return cnt+1; //返回子孙结点个数
}
signed main(){scanf("%lld%lld",&n,&k);for(int i=1;i<n;i++){int a,b;scanf("%lld%lld",&a,&b);e[a].push_back(b);e[b].push_back(a);}dfs(1,0,-1); int res=0;while(k&&q.size()){res+=q.top();q.pop();k--;}cout<<res;return 0;
}
相关文章:
1600*A. Linova and Kingdom(DFS优先队列贪心)
Problem - 1336A - Codeforces Linova and Kingdom - 洛谷 解析: 开始认为分情况讨论 k 小于等于叶子结点和大于叶子结点的情况,然后选择深度最深的叶子结点和子孙数量最小的结点,但是发现如果把某一个非叶子结点选取,那么其子孙…...
gitlab git lfs的替代软件整理汇总及分析
文章目录 前言替代软件分析git-annexgit-fatgit-symgit-meida 总结 前言 git-lfs科普 Git LFS(Large File Storage)是一个Git扩展,用于管理大型文件。Git LFS通过将大型文件存储在Git仓库之外,从而加快了Git操作的速度。它使用指…...
IDEA 2023.2.2图文安装教程及下载
IDE 系列的第二个年度更新现已发布,涵盖 IntelliJ IDEA、WebStorm、PyCharm、DataGrip、GoLand、DataSpell 以及 All Products Pack 订阅中包含的其他工具。该版本还包括多项用户体验增强功能,例如 Search Everywhere(随处搜索)中…...
第六届“中国法研杯”司法人工智能挑战赛
解锁司法科技的未来 “中国法研杯”司法人工智能挑战赛(Legal AI Challenge,简称LAIC),是面向法院侧人工智能应用领域唯一权威比赛,大赛愿景是在拥有全球最大规模司法数据的中国,实现法律界、学术界、产业界…...
Springcloud中间件-----分布式搜索引擎 Elasticsearch
该笔记是根据黑马程序员的课来自己写了一遍的,b站有对应教程和资料 第一部分 第二部分 第三部分 预计看完跟着练习5小时足够 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能ÿ…...
基于深度学习的目标检测和语义分割:机器视觉中的最新进展
基于深度学习的目标检测和语义分割是机器视觉领域的两个重要任务,它们在图像处理、自动驾驶、医学影像分析和智能视频监控等应用中发挥着关键作用。以下是这两个领域的最新进展: 目标检测(Object Detection): 一阶段检…...
微信小程序报错request:fail -2:net::ERR_FAILED(生成中间证书)
微信小程序报错request:fail -2:net::ERR_FAILED-生成中间证书 前言一、检查网站ssl证书二、生成证书方法1.获取中间证书手动合并1.进入网站:[https://www.myssl.cn/tools/downloadchain.html](https://www.myssl.cn/tools/downloadchain.html)2.点击下一步3.手动合…...
Ubuntu更改时区
sudo apt install tzdata 进行安装时区,有很多时区可供选择。 然后执行:tzselect rootd75c94dcd226:/# date 2023年 10月 11日 星期三 06:25:12 UTC rootd75c94dcd226:/# tzselect Please identify a location so that time zone rules can be set correctly. Ple…...
0144 文件管理
目录 4.文件管理 4.1文件系统基础 4.2目录 4.3文件系统 部分习题 4.文件管理 4.1文件系统基础 4.2目录 4.3文件系统 部分习题 1.UNIX操作系统忠,输入/输出设备视为() A.普通文件 B.目录文件 C.索引文件 D.特殊文…...
python psutil库之——获取网络信息(网络接口信息、网络配置信息、以太网接口、ip信息、ip地址信息)
文章目录 使用Python psutil库获取网络信息安装psutil库获取网络连接信息查看所有网络连接过滤特定状态的连接 获取网络接口信息获取网络IO统计信息实例1实例2 总结 使用Python psutil库获取网络信息 Python的psutil库是一个跨平台库,能够方便地获取系统使用情况和…...
uniapp上echarts地图钻取
1: 预期效果 通过切换地图 , 实现地图的钻取效果 2: 实现原理以及核心方法/参数 一开始是想利用更换地图数据的形式进行地图钻取 , 这就意味着我们需要准备全国30多个省份的地图数据 , 由于一开始考虑需要适配小程序端 , 如此多的地图文件增加了程序的体积 , 如果使用接口调…...
scratch保护环境 2023年5月中国电子学会图形化编程 少儿编程 scratch编程等级考试一级真题和答案解析
目录 scratch保护环境 一、题目要求 1、准备工作 2、功能实现 二、案例分析...
RPC分布式网络通信框架项目
文章目录 对比单机聊天服务器、集群聊天服务器以及分布式聊天服务器RPC通信原理使用Protobuf做数据的序列化,相比较于json,有哪些优点?环境配置使用项目代码工程目录vscode远程开发Linux项目muduo网络库编程示例CMake构建项目集成编译环境Lin…...
Navicat如何连接远程服务器的MySQL
参考:https://blog.csdn.net/a648119398/article/details/122420906 1.Navicat for Mysql 2.腾讯云轻量级服务器一台(Centos 7) 3.Mysql 8.0.24(远程服务器内安装的) 4.Xshell7(连接操作远程服务器) 一、修…...
【计算机网络笔记】计算机网络的结构
系列文章目录 什么是计算机网络? 什么是网络协议? 文章目录 系列文章目录网络边缘接入网络数字用户线路 (DSL)电缆网络典型家庭网络的接入机构(企业)接入网络 (Ethernet)无线接入网络 网络核心Internet结构最后 计算机网络的结构…...
排序算法-插入排序法(InsertSort)
排序算法-插入排序法(InsertSort) 1、说明 插入排序法是将数组中的元素逐一与已排序好的数据进行比较,先将前两个元素排序好,再将第三个元素插入适当的位置,也就是说这三个元素仍然是已排序好的,接着将第…...
RuntimeError: “slow_conv2d_cpu“ not implemented for ‘Half‘
RuntimeError: “slow_conv2d_cpu” not implemented for ‘Half’ 背景 测试语音识别模型whisper时,出现上述错误!! 测试代码如下: import whispermodel whisper.load_model("base") # print(model)# load audio an…...
前端 | 前端工程化
文章目录 前端工程化1. Vue项目创建2. Vue项目目录结构3. vue项目开发 前端工程化 1. Vue项目创建 安装插件vue-cli npm install -g vue/cli命令行创建 Vue 项目 vue create vue-project(项目名称)图形化界面创建 VUe 项目 vue ui图形化界面如下: 选择功能&…...
学信息系统项目管理师第4版系列24_整合管理
1. PMBOK 1.1. 自1987年以来,PMBOK-直是基于过程的项目管理标准的重要代表 1.1.1. 基于过程的方法是项目管理的基石 1.2. 从2021年开始,第7版PMBOK采用了基于原则的标准,其中包含了 12个项目管理基本原则,这些基本原则为有效的…...
轻量级虚拟化技术草稿
Support Tech ST.1 virtiofs ST.1.1 fuse framework 引用wiki中关于fuse的定义: Filesystem in Userspace (FUSE) is a software interface for Unix and Unix-like computer operating systems that lets non-privileged users create their own file systems w…...
RMBG-2.0开源模型教程:微调BiRefNet适配特定行业(如医疗影像标记)
RMBG-2.0开源模型教程:微调BiRefNet适配特定行业(如医疗影像标记) 1. 项目概述与核心价值 RMBG-2.0(BiRefNet)是一个基于先进架构开发的图像背景扣除模型,能够精确识别并移除图像背景,保留高质…...
Phi-4-mini-reasoning惊艳效果:对存在矛盾前提的题目主动识别并预警
Phi-4-mini-reasoning惊艳效果:对存在矛盾前提的题目主动识别并预警 1. 模型核心能力展示 Phi-4-mini-reasoning作为一款专注于推理任务的文本生成模型,在处理数学题、逻辑题等需要多步分析的场景时展现出独特优势。最令人惊艳的是,它能够主…...
NXOpen 属性工具(工作部件和实体加属性二合为一)
C++ //HPP文件 //============================================================================== #ifndef ATTRIBUTE_TEST_H_INCLUDED #define ATTRIBUTE_TEST_H_INCLUDED //------------------------------------------------------------------------------ //These i…...
Netskope 安全与网络重塑人工智能
从移动和云计算的进步到人工智能的指数级增长,网络和安全团队都在努力寻找正确的方法,以保持领先地位。这正是 Netskope 创立的初衷,也是我们不断创新、以正确的方式构建技术和业务的原因,从而帮助我们的客户更轻松地应对挑战。在…...
别再直接求逆了!用MATLAB的Cholesky分解高效求解对称正定矩阵的逆(附完整代码)
高效求解对称正定矩阵逆:MATLAB中Cholesky分解的工程实践指南 在工程计算领域,对称正定矩阵的逆矩阵求解是一个基础但至关重要的操作。从金融风险模型的协方差矩阵求逆,到机器学习中高斯过程回归的核矩阵运算,再到信号处理中的自适…...
如何构建现代化博客系统:从Markdown到动态页面的完整指南
如何构建现代化博客系统:从Markdown到动态页面的完整指南 【免费下载链接】skateshop An open source e-commerce skateshop build with everything new in Next.js. 项目地址: https://gitcode.com/gh_mirrors/sk/skateshop 在当今数字化时代,拥…...
C++编程中堆与栈内存的差异解析
C编程中堆与栈内存的差异解析 在C编程的世界里,内存管理是一个核心且至关重要的概念。其中,堆(Heap)与栈(Stack)作为两种主要的内存分配区域,各自扮演着不同的角色,理解它们之间的区…...
收藏!小白程序员必看:5大AI Agent框架深度解析,助你轻松入门大模型时代!
2026年,GitHub上AI Agent相关项目星标总量已突破500万。但大多数团队在选型时只看星星数,结果花3个月踩坑才明白——框架没有最好,只有最合适。今天我们不吹不黑,从架构哲学、学习曲线、生产成熟度、多Agent协作、长任务支持、可观…...
OpenClaw+千问3.5-27B学习助手:自动整理笔记与生成思维导图
OpenClaw千问3.5-27B学习助手:自动整理笔记与生成思维导图 1. 为什么需要AI学习助手? 去年准备技术认证考试时,我发现自己陷入了"资料沼泽"——收集了87个PDF、42小时视频课程和无数网页书签,但真正消化吸收的内容不到…...
搞不定CAN总线匹配电阻?实测告诉你120Ω电阻怎么加、阻值怎么测、位置怎么放才不出错
CAN总线终端电阻实战指南:从原理到排错的完整解决方案 当你的CAN总线通信频繁出现TxError或NO ACK错误时,终端电阻配置往往是第一个需要检查的环节。许多工程师虽然知道"两端各加120Ω电阻"的基本原则,但在实际项目中仍然会犯各种看…...
