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

自研SSD固件:从零实现固态硬盘底层存储控制系统 本文探讨了自主开发SSD固件的可行性及实现方案。分析表明,虽然NAND Flash控制协议标准化且存在开源参考实现,但开发仍面临FTL设计复杂度高、性能调优等挑战。推荐采用FPGA平台(如Xilinx Zynq-7000)搭配SLC NAND Flash的方案,预计开发周期9-12个月。系统采用分层架构设计,包含主机接口层、FTL层和闪存接口层,核心模块需实现NAND Flash底层驱动、地址映射管理和垃圾回收等功能。文中提供了关键数据结构和基础驱动代码示例,包括页读写、块擦除等操作。该方案着重解决NAND 阅读详情

题目链接: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,不然会爆炸哦。

AI Agent开发第84课-paddleocr-vl全网唯一最全本地化布署教程 本文详解 PaddleOCR-VL 本地化布署全过程,指出为何在真实生产环境中 PaddleOCR-VL 更稳定、更易部署、更贴近工程落地。同时还会详细比较与 DeepSeek-OCR 的核心差异,为全网独家介绍paddleocr-vl的本地部署实战指南。 阅读详情

相关推荐

python音频信号分析

声音以具有诸如频率、带宽、分贝等参数的音频信号的形式表示,典型的音频信号可以表示为幅度和时间的函数

MAY的博客 2785

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

Graylog日志系统实战:高效接收与解析交换机日志

本文提供Graylog日志系统的实战部署与配置指南,重点讲解如何高效接收与解析交换机日志。通过Docker快速部署,配置Syslog输入,并指导华为、华三等主流交换机将日志发送至Graylog。文章还介绍了使用提取器解析日志字段、创建数据流进行分类,以及设置报警规则,实现从被动排查到主动预警的运维转变,帮助网络工程师构建集中、智能的日志管理系统。

weixin_29284885的博客 540

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

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

AWCXV 261

Windows下TensorRT+YOLOv11部署避坑指南:从CUDA配置到模型加密全流程

本文详细解析了在Windows平台部署YOLOv11与TensorRT的全流程,重点涵盖从CUDA环境配置、工程编译适配到模型加密保护的实战指南。基于wang-xinyu的tensorrtx仓库,提供了详细的版本选择、编译问题修复方案,并深入探讨了如何对TensorRT引擎进行加密,以实现高效且安全的端到端部署。

vscode5coder的博客 450

基于知识图谱的职位推荐系统的设计与实现

在职位推荐系统中,实体可以包括职位、公司、技能等,而关系可以包括职位与公司的关联、职位与技能的关联等。基于知识图谱的职位推荐系统可以提供更加智能和精确的职位推荐服务。通过收集和预处理数据构建知识图谱,并设计推荐算法和用户界面,可以实现一个完整的职位推荐系统。通过利用知识图谱技术,我们可以构建一个更加智能和精确的职位推荐系统。本文将介绍如何设计和实现基于知识图谱的职位推荐系统,并提供相应的源代码。通过定义实体和关系的节点和边,可以将数据存储在图数据库中,并建立它们之间的关系。

RiqaEditor的博客 1668

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

西门子S7-1200的PID应用(恒温热水器)

物料清单:1200PLC一台,模拟量输入模块SM1231(PLC自带的输入通道不支持4-20mA电流输入)一个,PT100一个,温度变送器,热得快,固态继电器。 第一步,硬件接线; 第二步,新建1200工程,添加PLC和模拟量输入模块,修改模块的模拟量输入类型为4-20mA,模拟量模块的IO地址为96-103(8个字); 第三步,新建循环组织块OB30,循环时间选择默认点1...

weixin_30835649的博客 6549

C. Linova and Kingdom(DFS+贪心)

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

m0_64158084的博客 1214

YOLOv8-Pose NCNN Android部署优化实践

本文探讨了在Android设备上高效部署YOLOv8-Pose姿态检测模型的优化实践。通过修改Pose头部导出逻辑,分离后处理到C++端实现,并替换SiLU激活函数为ReLU,显著提升了计算效率。具体步骤包括模型结构优化、ONNX导出、NCNN转换与算子融合,最终在Android端实现了30FPS的稳定推理性能。项目提供了完整的优化思路和实现方案,对移动端AI应用开发具有参考价值。

FJN110的博客 323

19 04-读取DTC快照信息

为了方便找到故障的原因,车厂一般会在诊断调查表中定义一些信息作为快照信息,例如故障发生时间、电压、行驶里程数、车速等。在对应故障发生时,ECU端要记录发生故障时的快照信息,客户端可以通过此服务检索客户端定义的DTCMaskRecord的捕获DTC Snapshot记录号以及DTCSnapshot记录数据。通过查找故障发生时刻的这些数据,来分析故障原因。

诊断协议那些事儿's blog 5138

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

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

酒姬民的博客 426

华为OD机试 - 文件存储系统的排序 - 深度优先搜索dfs(Java 双机位C卷 200分)

华为OD机试 双机位C卷题库疯狂收录中,刷题。

学Java,找哪吒 719

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

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

[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

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

题解 - 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

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、付费专栏及课程。

余额充值