4.15Codeforces Round #635 (Div. 2)C.Linova and Kingdom题解

Android14_MTK调试LCD屏功能 android14 MTK平台调试LCD屏 阅读详情

题目链接:https://codeforces.ml/contest/1337/problem/C

大意:给出n,k和一个点数量为n的树,让其中k个结点变为工业城市,其余为旅游城市。而每个工业城市到根节点1的路径上存在的旅游城市数量之和求最大,并输出最大值。

样例:
Examples
inputCopy
7 4
1 2
1 3
1 4
3 5
3 6
4 7
outputCopy
7
inputCopy
4 1
1 2
1 3
2 4
outputCopy
2
inputCopy
8 5
7 5
1 7
6 1
3 7
8 3
2 1
4 5
outputCopy
9

这个题我们可以先不考虑两个工业城市连成一个线,让他们对答案的贡献都不变。

以样例一为例子:

我们什么都不管就xjb往深度高的结点去贪心看看:可以,得出的是7。但是我们贪心取得是当前贡献最大,所以先贪567,他们三个用完再去考虑深度为2的234.

如果我们用样例3为例子,就会发现一个问题:
在这里插入图片描述

这是第三样例的图,我们可以看到他们的深度d[i],从1到8分别是:

id[i]
10
21
32
43
52
61
71
83

从贪心的想法是:先要了4和8,ans现在等于6了,如果现在我们选了5会怎么样?会导致4的贡献-1,应该说:选了5,5后面有多少个点贡献就会减一。

为什么呢?因为是贪心深度高的点,既然已经选到了5这个点,那么必定他后面的点都已经选完了才会去选他的。

所以现在5这个点的贡献还是不是2?不是了,他的贡献已经是一了。

贪心结论(策略):
深度d[i]-=后面的点down[i];
sort(d);
取前k大。

代码:

//觉得有用的麻烦点个赞呗
typedef unsigned long long ULL;
typedef long long LL;
struct note
{
	int from,to;
};
vector<int >point[200001];
LL d[200001];
int down[200001];
void dfs(int a,int last)
{
	int len=point[a].size();
	for(int time=0;time<len;time++)
	{
		if(point[a][time]==last)continue;
		d[point[a][time]]=d[a]+1;
		dfs(point[a][time],a);
	}
}
void look(int a,int last)
{
	int len=point[a].size();
	int res=len;
	if(a!=1)res--;
	for(int time=0;time<len;time++)
	{
		if(point[a][time]==last)continue;
		look(point[a][time],a);
		res+=down[point[a][time]];
	}
	down[a]=res;
}
int main()
{
	int n,k;
	cin>>n>>k;
	for(int time=1;time<n;time++)
	{
		int from,to;
		cin>>from>>to;
		point[from].push_back(to);
		point[to].push_back(from);
	}
	d[1]=0;
	dfs(1,1);
	look(1,1);
	for(int time=1;time<=n;time++)
	{
		d[time]-=down[time];
	}
	sort(d+1,d+n+1);
	LL ans=0;
	for(int time=n;time>n-k;time--)ans+=d[time];
	printf("%lld\n",ans);
	return 0;
}
//觉得有用的麻烦点个赞呗

还要注意一个问题:ans要开LL,不然会爆炸哦。

【SI案例分享】1000 BASE-T1共模终端的分析与评估 以太网的MDI接口应用中,共模端接网络的应用广泛,并且,其电路参数从100 BASE-T1到1000 BASE-T1保持了相同的参数定义,这就不得不引起使用者的怀疑,毕竟百兆和千兆以太网的工作频段差异巨大,这样的设计真的可以做到上下兼容吗?本文针对此问题,进行了深入的探讨。 阅读详情

相关推荐

【代码审计】RuoYi定时任务漏洞:从SQL注入到RCE的攻防演变

本文深入剖析了RuoYi框架定时任务模块从早期版本无校验到引入黑白名单机制,再到被组合利用实现RCE的完整漏洞演变过程。文章详细分析了SQL注入与定时任务功能结合导致的远程代码执行漏洞,并总结了代码审计与安全开发的核心要点,为开发者提供了重要的安全参考。

yellow的专栏 699

A. Linova and Kingdom

题目大意:给定n个城市,其中有k个工业城市,n-k个旅游城市,求从所有工业城市到首都(1)的过程中经过的旅游城市之和的最大值。 题解: 1,根据贪心的策略,工业城市与旅游城市的父子关系是确定的,旅游城市为父亲结点而工业城市为儿子结点。(可以利用反证法证明) 2,基于结论1,我们可以定义每一个点的权重为:该点到1的距离-该点的子节点个数,然后我们选择k个最大的结点即可。 注意答案要开long long #include<bits/stdc++.h> using namespace...

weixin_60285599的博客 486

Element Server Suite社区版Helm部署:私有Matrix聊天服务器快速搭建指南

在云原生和微服务架构日益普及的今天,容器化部署已成为现代应用交付的标准范式。Kubernetes作为容器编排的事实标准,通过声明式配置和自动化管理,极大地简化了复杂分布式系统的部署与运维。Helm作为Kubernetes的包管理器,通过预定义的Chart模板,将应用及其依赖打包,实现了真正的“一键部署”,显著提升了部署效率和可重复性。这种技术组合的价值在于,它让开发者能够专注于业务逻辑,而非底层基础设施的复杂性,尤其适用于需要快速搭建、易于维护的服务场景。Element Server Suite Commu

weixin_42610010的博客 300

【Codeforces Round #635 (Div. 2) C】Linova and Kingdom

题目链接 点我呀 翻译 给你一棵树, 让你在这棵树上选择恰好k个点, 这k个点是发展工业的, 然后其余的n - k个点发展旅游业。 但是根节点(约定1号节点是根节点)例外, 它可以发展旅游业也可以发展工业(不过后面会发现这条件没啥用。。)。 假设x是你选出来的k个点中的一个, 对于所有的x, 你需要求出每个节点x到根节点1会经过的 发展旅游业 的节点个数\(cnt_i\), 然后对cnt...

AWCXV 261

基于MS5351的三通道可编程时钟发生器设计

时钟发生器是数字系统时序验证与信号完整性测试的核心基础设备,其原理基于锁相环(PLL)对参考晶振进行倍频与分频控制,通过寄存器配置实现多路独立频率输出。技术价值体现在高精度、低抖动、快速切换与工程可部署性之间取得平衡,尤其适用于FPGA/ASIC参考时钟调试、ADC/DAC采样时钟验证及嵌入式硬件时序裕量评估等场景。本方案采用MS5351三通道时钟芯片与ESP32主控协同架构,在保证LVCMOS输出质量与I²C可编程性的前提下,优化电源噪声抑制、晶体负载匹配和跨板信号完整性,兼顾成本、周期与实测稳定性,为实

weixin_31715353的博客 211

最新Docker GPU支持全解析:为什么nvidia-smi能用但PyTorch找不到CUDA?

本文深入解析了Docker容器中nvidia-smi命令可用但PyTorch无法调用CUDA的根本原因。关键在于默认配置仅暴露了GPU的utility管理能力,而CUDA计算所需的compute能力未被激活。通过正确设置NVIDIA_DRIVER_CAPABILITIES环境变量为compute,utility,并配合--gpus参数,即可解决此问题,确保AI训练等任务顺利进行。

convnet3designer的博客 239

Linova and Kingdom(dfs)(题解)

2020/7/10补题Linova and Kingdom Writing light novels is the most important thing in Linova’s life. Last night, Linova dreamed about a fantastic kingdom. She began to write a light novel for the kingdom as soon as she woke up, and of course, she is the queen

濡苏的博客 481

Ubuntu20.04系统Cuckoo sandbox所需环境搭建及安装(超详细图文)

请勿叫我大神,我只是互联网的搬运工~ 前言 本教程以Ubuntu20桌面版作为示范,服务器版同样适用,但可能稍微麻烦一点,服务器版本的话安装Xmanage套装使用可能会相对轻松一些,由于后面会使用到vbox的使用,对vbox命令行操作不熟悉的小伙伴用xmanage可能会相对轻松一点。 提示:以下是本篇文章正文内容,下面案例可供参考 安装ubuntu20桌面版 步骤1:转到https://ubuntu.com/download/desktop下载下载.iso。 步骤2:使用您选择的虚拟机监控程序(VMWa

ElsonHY的博客 1万+

C. Linova and Kingdom(DFS+贪心)

【代码】C. Linova and Kingdom(DFS+贪心)

m0_64158084的博客 1214

【GRASS GIS零基础入门教程】2.1:初识GRASS GIS软件

GRASS GIS是一个强大的计算引擎,用于栅格、矢量和地理空间处理。它支持地形和生态系统建模、水文、数据管理和图像处理。通过内置的时态框架和Python API,它可以进行高级时间序列分析和快速地理空间编程,并针对各种硬件配置的大规模分析进行优化。

智慧空间实验室 847

【异常】Claude Code CLI工具 模型加载异常 /init报错排查与完整解决方案 There‘s an issue with the selected model (glm-5). It

此类跨厂商模型配置报错,核心诱因是API生态的兼容性不匹配。优先使用工具原生支持的模型体系,可快速解决90%以上的同类报错;若需跨厂商使用目标模型,需完成API端点、鉴权密钥、模型ID的全链路适配,确保全流程配置合规,即可完成异常修复。

奶爸的编程之路,也就一周冷个三天 3704

【CF1336A】A. Linova and Kingdom(贪心)

利诺瓦和王国 题意: 给定一颗树,在树上挑选 K 个结点作为工业城市。 每个工业城市能得到的快乐值为:从自身走到根节点 1 的最短路径上能经过的 非工业城市 的个数。 求最大能获得的总快乐值。 思路: 经典的 K 城市放置,代表这题很有可能是个贪心。 我们很简单能想到,在深度大的点放工业城市,这样更快乐。 但也要考虑到 若某点放城市,它会影响它以下的所有点,让它们的快乐值都 -1。 综合以上,我们需要的是深度尽可能大的点,同时自身以下结点个数少的点(影响小)。 根据这个排序即可。可以发现 dep -

酒姬民的博客 426

基于YOLOv5s的RK3588多线程部署16FPS暴涨到120FPS 轻量化深度学习部署实战教程(包括性能优化与加速)37

本文介绍了如何在RK3588平台上利用线程池优化YOLOv5模型的推理性能。RK3588内置3个NPU核心,支持多核并行处理。作者设计了一个线程池架构:1个线程负责数据读取,10个线程处理NPU运算,1个线程输出结果。该架构包含任务队列、线程管理和工作线程三个核心组件,通过合理设置线程数、任务队列大小等参数确保性能稳定。文章提供了详细的C++实现代码,包括线程池初始化、任务提交、结果获取等功能模块,并讨论了多线程同步和内存管理的关键技术要点。该方案可显著提升深度学习模型在嵌入式设备上的部署效率。

FJN110的博客 9230

Codeforces Round #635 (Div. 2) C.Linova and Kingdom

Codeforces Round #635 (Div. 2) C.Linova and Kingdom Writing light novels is the most important thing in Linova’s life. Last night, Linova dreamed about a fantastic kingdom. She began to write a light ...

旺崽的博客 2651

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

[codeforces 1337C] Linova and Kingdom 公式推导

Codeforces Round #635 (Div. 2) 比赛人数14830 [codeforces 1337C] Linova and Kingdom 公式推导 总目录详见https://blog.csdn.net/mrcrack/article/details/103564004 在线测评地址https://codeforces.com/contest/1337/prob...

mrcrack的博客 643

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

题解 - Codeforces Round #635 (Div. 2,A-E)

Codeforces Round 635 (Div.2)\mathrm{Codeforces\ Round \ 635 \ (Div. 2) }Codeforces Round 635 (Div.2) 吐槽环节 比赛就做出444道,D fstD\ fstD fst啦 中国场果真毒瘤 A.Ichihime ...

wangyiyang2的博客 366

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C. Linova and Kingdom题解

Codeforces Round #635 (Div. 2) C. Linova and Kingdom题解 贪心解法: 如果选择某个节点 i 作为旅游城市,那么对增加的度就是以节点 i 为根的子树(不包括节点 i )包含的节点数量对减少的度就是节点 i 的所有祖先节点中的旅游城市数量。 所以每个节点对答案的贡献就可以转化成 以节点 i 为根的子树(不包括节点 i )包含的节点数量 ...

Kuricip的博客 311

Linova and Kingdom

Linova and Kingdom 题目来源:Codeforces Round #635 (Div. 2) C题 Writing light novels is the most important thing in Linova’s life. Last night, Linova dreamed about a fantastic kingdom. She began to write a ...

soul_mingling的博客 454

Codeforces Round #635 (Div. 2) abcd

昨天晚上找的这套cf比之前那几套简单一些 到一点出了三题 感动 之前到一点b题才勉勉强强a掉 A. Ichihime and Triangle 题目思路 题目给出的三个区间都首尾相连 第二个区间右结点和第三个区间的左节点相同 所以输出这个点 在输出第一个区间的随便一个点就行 ac代码 #include <stdio.h> #include <iostream> #include <algorithm> #include <math.h> #include &l

daydreamer23333的博客 258

Codeforces Round #635 (Div. 2)

这里单纯写下C题的题解,后期有时间写下别的题 传送门 C.Linova and Kingdom 设计知识点: dfs、思维、贪心 解题思路: 根据题意我们了解掉,我们尽量选距离根节点1较远的点作为工厂,肯定会考虑到每个点距根节点的距离,这里利用dfs来搜索进行存储,然后我们如何选择点成为了关键 这里我们想一下,如果当前点作为工厂,那么他的贡献度为 : 当前点的深度 - 前面的黑色的点(就是工厂) 那么我们转换一下,我们的贪心思想是 当前点的深度 - 其子节点的数目 (deep - size.

LiangNiuMu的博客 254

Codeforces Round #635 (Div. 2) C - Linova and Kingdom(树形dp+思维)

Linova and Kingdom time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Writing light novels is the most important thing in Linova's l...

LSD20164388的博客 368

Codeforces Round #635 (Div. 2) C. Linova and Kingdom

题目链接 题意: 给一个点数量为 n 的树,让其中 k 个结点变为工业城市,其余为旅游城市。而每个工业城市到根节点 1 的路径上存在的旅游城市数量之和求最大。 思路: 思路到是简单,就是我没有写出来。。 既然求最大,肯定是求最远的距离。到是问题就在,我怎么知道每个工业城市的前面有多少个旅游城市(因为他的前面也可能有旅游城市)。所以这里我们用dfs来搜到最底层,求出每个工业城市的前面有多少个旅...

give it a try 269

[Codeforces Round #635 (div2)]1337C - Linova and Kingdom[dfs][贪心]

1337C - Linova and Kingdom[dfsdfsdfs][贪心] time limit per test memory limit per test input output 2 seconds 256 megabytes standard input standard output Description: Writing light novels is...

QAQ! 的博客 358

Codeforces Round #635 (Div. 2) C. Linova and Kingdom

这题真的忐忑,首先读完题目第一反应就是直接dfs一遍,求一个深度,选深度最深的k个,结果题目要求是经过旅游景点,然后发现这不可行,然后想了一种贪心思路,按dep从大大小排序,然后dep相等在按直接儿子个数从小到大排序,因为儿子越多的,选了它就会对选的dep更深选的影响越大,然后排完序依次选,答案就是dep - siz + 1,写了一发,交上去wa5,因为假设节点 u 的dep比较大,但是他的子孙也...

nofuck的博客 237

Codeforces Round #635 (Div. 2) C. Linova and Kingdom(贪心+搜索)

题目地址----> C. Linova and Kingdom 题意:一个n个节点(root=1)的树,让你找k个工厂,其他n-k为旅游地,每个工厂从自身点到根节点经过的旅游地的个数为幸福值,让你求着k个工厂幸福值的最大值。 解题: 每个点的深度-(以该节点为子节点数量+该点的子节点数量) 我们分析每个点,我们从叶子节点往上分析,这样可以保证幸福值最大(显然)。 每个点他的贡献就...

aaHua_ 291
上一篇: 2019 ICPC Malaysia National J.Kitchen Plates
下一篇: A. Rooms and Passages【区间问题】
DevourPower
博客等级 码龄7年 52粉丝 78原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值