当前位置: 首页 > news >正文

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;
}
http://www.lryc.cn/news/189459.html

相关文章:

  • gitlab git lfs的替代软件整理汇总及分析
  • IDEA 2023.2.2图文安装教程及下载
  • 第六届“中国法研杯”司法人工智能挑战赛
  • Springcloud中间件-----分布式搜索引擎 Elasticsearch
  • 基于深度学习的目标检测和语义分割:机器视觉中的最新进展
  • 微信小程序报错request:fail -2:net::ERR_FAILED(生成中间证书)
  • Ubuntu更改时区
  • 0144 文件管理
  • python psutil库之——获取网络信息(网络接口信息、网络配置信息、以太网接口、ip信息、ip地址信息)
  • uniapp上echarts地图钻取
  • scratch保护环境 2023年5月中国电子学会图形化编程 少儿编程 scratch编程等级考试一级真题和答案解析
  • RPC分布式网络通信框架项目
  • Navicat如何连接远程服务器的MySQL
  • 【计算机网络笔记】计算机网络的结构
  • 排序算法-插入排序法(InsertSort)
  • RuntimeError: “slow_conv2d_cpu“ not implemented for ‘Half‘
  • 前端 | 前端工程化
  • 学信息系统项目管理师第4版系列24_整合管理
  • 轻量级虚拟化技术草稿
  • bootz启动 Linux内核过程中涉及的 do_bootm_states 函数
  • springcloud学习笔记(3)-服务管理组件Nacos
  • Insight h2database 更新、读写锁以及事务原理
  • skywalking动态配置[集成nacos/apollo/consul]
  • UniApp创建项目HelloWorld
  • Qt/C++原创推流工具/支持多种流媒体服务/ZLMediaKit/srs/mediamtx等
  • 学习黑马程序员JavaScript总结
  • 浅谈高速公路服务区分布式光伏并网发电
  • MATLAB算法实战应用案例精讲-【图像处理】机器视觉(番外篇)
  • 塑胶材料检测对激光焊机的作用
  • 将Eureka服务注册到Eureka中心