Luogu2279[HNOI2003] 消防局的设立

10.嵌入式控制器EC实战 GPIO开发流程 文章目录1.General Control Register (GCR),通用控制寄存器,地址0x1602.GPDRA—GPDRJ端口数据寄存器组(共10组)3.Port Control n Registers (GPCRn, n = A0-I7),端口控制寄存器4.GPIO端口编程指导编程步骤端口初始化使用InitGPIOReg数据结构初始化所有端口默认工作模式读取输入引脚的值(STATE_ACin()): IT8502中各个引脚的描述见下表所示: 在嵌入式控制器EC的IT8502主控芯片中,通过芯片的 阅读详情

原题链接:https://www.luogu.org/problemnew/show/P2279

消防局的设立

题目描述

2020 2020 2020年,人类在火星上建立了一个庞大的基地群,总共有 n n n个基地。起初为了节约材料,人类只修建了 n − 1 n-1 n−1条道路来连接这些基地,并且每两个基地都能够通过道路到达,所以所有的基地形成了一个巨大的树状结构。如果基地 A A A到基地 B B B至少要经过 d d d条道路的话,我们称基地 A A A到基地 B B B的距离为 d d d。

由于火星上非常干燥,经常引发火灾,人类决定在火星上修建若干个消防局。消防局只能修建在基地里,每个消防局有能力扑灭与它距离不超过 2 2 2的基地的火灾。

你的任务是计算至少要修建多少个消防局才能够确保火星上所有的基地在发生火灾时,消防队有能力及时扑灭火灾。

输入输出格式
输入格式:

输入文件名为 i n p u t . t x t input.txt input.txt。

输入文件的第一行为 n ( n &lt; = 1000 ) n (n&lt;=1000) n(n<=1000),表示火星上基地的数目。接下来的 n − 1 n-1 n−1行每行有一个正整数,其中文件第i行的正整数为 a [ i ] a[i] a[i],表示从编号为 i i i的基地到编号为 a [ i ] a[i] a[i]的基地之间有一条道路,为了更加简洁的描述树状结构的基地群,有 a [ i ] &lt; i a[i]&lt;i a[i]<i。

输出格式:

输出文件名为 o u t p u t . t x t output.txt output.txt

输出文件仅有一个正整数,表示至少要设立多少个消防局才有能力及时扑灭任何基地发生的火灾。

输入输出样例
输入样例#1:

6
1
2
3
4
5

输出样例#1:

2

题解

贪心策略:每次都找到深度最深的没被覆盖的点,在它的爷爷设立消防站,这样决策没有后效性,也是当前能做出的最优决策。

所以我们把每个点按深度排序,记录每个点离最近的消防站的距离,当距离大于 2 2 2时在他爷爷设立消防站并更新爷爷的爸爸和爷爷的距离。

代码
#include<bits/stdc++.h>
using namespace std;
const int M=1005;
int dad[M],dep[M],pt[M],dis[M],n,ans;
bool cmp(int a,int b){return dep[a]>dep[b];}
void in()
{
    scanf("%d",&n);pt[1]=1,dis[0]=dis[1]=M;
    for(int i=2;i<=n;++i)scanf("%d",&dad[i]),dep[i]=dep[dad[i]]+1,pt[i]=i,dis[i]=M;
}
void ac()
{
    sort(pt+1,pt+1+n,cmp);
    for(int i=1,v,f,ff;i<=n;++i)
    {
        v=pt[i],f=dad[v],ff=dad[f];
        dis[v]=min(dis[v],min(dis[f]+1,dis[ff]+2));
        if(dis[v]>2)dis[ff]=0,++ans,dis[dad[ff]]=min(dis[dad[ff]],1),dis[dad[dad[ff]]]=min(dis[dad[dad[ff]]],2);
    }
    printf("%d",ans);
}
int main(){in(),ac();}
Camera2Demo 在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作 立即下载

相关推荐

首个基于LBS方案的3D传感器,VoxelSensor解析

该传感器将结合OQmented的Lissajous模式的MEMS扫描镜,与每帧逐行工作的光栅扫描相比,Lissajous轨迹扫描速度更快,并且能耗很低,它可以更快地捕获完整的场景和快速移动,并且需要更少的数据处理,可满足AR/VR对于低延迟、高效率的需求。简单来讲,Switching Pixels的区别是专注于识别激光事件,性能比普通事件相机更好,但也可以使用事件相机的算法。在具体应用中,它需要在X和Y方向发射一个或多个脉冲光束,以在X和Y轴上定位,而Z轴,也就是深度,则是通过计算光返回的时间来测量。

qingtingwang的博客 576

bzoj1217: [HNOI2003]消防局的设立

Description2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地。起初为了节约材料,人类只修建了n-1条道路来连接这些基地,并且每两个基地都能够通过道路到达,所以所有的基地形成了一个巨大的树状结构。如果基地A到基地B至少要经过d条道路的话,我们称基地A到基地B的距离为d。由于火星上非常干燥,经常引发火灾,人类决定在火星上修建若干个消防局。消防局只能修建在基地里,每个消防局有能力扑

qq_33728185的博客 562

广工计组实验f2一位全加器

一位全加器实验

weixin_63692154的博客 2847

[HNOI2003] 消防局的设立

经典题,但还是想写一篇完整而又详细美观的题解。 本文含有贪心及 dp 的做法,适合所有语言人群阅读。 1 Perface\Large\textbf{1 Perface}1 Perface 本题的 424242 篇题解(指洛谷 P2279),可以说是没有一篇做到了内容与美观程度并存,而这又是一道经典题目,所以打算再次写一篇题解。 2 Solution\Large\textbf{2 Solution}2 Solution 2.1 贪心\large\textbf{

fsupervisor的博客 410

管理信息系统(MIS)设计

一名读者可以借阅多本图书,而一本图书也可以被不同的读者借阅,所以读者与图书之间存在着多对多的借阅关系,读者与图书之间存在着多对多的联系,即m:n的联系。每一种图书属于一种图书类型,而一种图书类型可以包含很多本图书,因此可以得到图书类型与图书之间也存在着一种一对多的联系,即图书类型与图书是1:n的联系。系统应该实现以下功能:图书管理员可以维护图书信息,包括增加新书、修改图书信息、办理图书借阅登记、图书归还登记、过期图书处理、丢失图书处理及读者借阅证件信息的维护等;

m0_69718745的博客 2477

哨兵一号burst数据的下载和处理

在Sentinel - 1数据处理领域,其基本流程起始于从(ASF)下载原始压缩文件。这些文件规模颇为可观,常规大小约4GB,而部分数据的原文件甚至已攀升至7GB,对存储空间提出了严苛要求。从影像构成来看,每景Sentinel - 1影像由三个干涉宽幅(IW)模式子带组成,每个IW一般包含9个脉冲串(burst)。然而,在实际研究中,我们所关注的研究区域往往仅占据其中寥寥几个burst。

kangkangluoluo的博客 1965

洛谷 P2279 [HNOI2003]消防局的设立

题意 给出一个树,一个消防站能够覆盖与他距离小于2的点。 求覆盖整个树需要多少个消防站。 分析 有贪心思路和动规思路,这篇题解使用动规。 所以按照树形DP的常规套路,我们把一棵子树的状态作为一个划分状态的标准。但是一个子树可能还可以向外覆盖点,也有可能有几个点没覆盖。 由于覆盖半径是2,对于一棵子树划分5种状态: \(f_{i,0}\)向上覆盖2个。 \(f_{i,1}\)向上覆盖1个。...

weixin_30832405的博客 218

第七章-分布式搜索引擎-ES:全文查询、分词查询、精确查询、地理坐标查询、组合查询(bool、funtion_score)以及RestApi

111

weixin_36580930的博客 1633

[HNOI2003]消防局的设立

题目 题目描述 2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地。起初为了节约材料,人类只修建了n-1条道路来连接这些基地,并且每两个基地都能够通过道路到达,所以所有的基地形成了一个巨大的树状结构。如果基地A到基地B至少要经过d条道路的话,我们称基地A到基地B的距离为d。 由于火星上非常干燥,经常引发火灾,人类决定在火星上修建若干个消防局。消防局只能修建在基地里,每个消防局有能力扑...

MILLOPE的博客 462

【OpenClaw从入门到精通】第05篇:实战!OpenClaw自动化搞定邮件/日历/文件管理(2026实测避坑版)

本文聚焦OpenClaw核心实用场景,手把手教你实现邮件、日历、文件管理的全自动化。通过安装三大核心技能,配置IMAP/SMTP邮箱、跨平台日历及文件沙盒权限,结合4个虚拟实战案例,演示从邮件自动摘要、会议冲突预警到下载文件夹分类的完整流程。文中包含2026实测的命令代码、配置步骤、排障方案,所有案例需在测试环境验证,代码未上传GitHub。兼顾新手入门与进阶需求,让OpenClaw从“能聊天”升级为“能干活”,帮你节省80%重复工作时间。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2678

GEE:连续变化检测 CCDC 提取断点信息(干扰时间、干扰幅度、干扰次数)

本文将介绍在 Google Earth Engine (GEE) 平台上连续变化检测与分类(Continuous Change Detection and Classification, CCDC)提取扰动时间、干扰幅度、干扰次数信息,并下载到本地的代码。

养乐多的博客 1945

BZOJ 1217: [HNOI2003]消防局的设立( 贪心 )

一个简单的贪心, 我们只要考虑2个消防局设立的距离为5时是最好的, 因为利用最充分. 就dfs一遍, 再对根处理一下就可以了. 这道题应该是SGU某道题的简化版...这道题距离只有2, 树型dp应该也是可以的------------------------------------------------------------------------------------#include<...

weixin_30651273的博客 209

软考高级架构师笔记-10数学计算题

专栏《软考高级架构设计师》更新了,本章列举了10个场景计算题的解法,温故而知新,大家快来卷一卷

java后端开发的博客,不仅仅是后端开发 1600

[Luogu2279][HNOI2003] 消防局的设立

文章目录题目法一:树上DP思路代码实现法二:贪心 + 搜索思路代码实现 题目 法一:树上DP 思路 代码实现 #include <cstdio> #include <vector> #include <algorithm> using namespace std; #define MAXN 1005 vector < int > G[MAXN];...

238

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

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

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

[luogu]P2279 [HNOI2003]消防局的设立[贪心]

[luogu]P2279 [HNOI2003]消防局的设立 题目描述 2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地。起初为了节约材料,人类只修建了n-1条道路来连接这些基地,并且每两个基地都能够通过道路到达,所以所有的基地形成了一个巨大的树状结构。如果基地A到基地B至少要经过d条道路的话,我们称基地A到基地B的距离为d。 由于火星上非常干燥,经常引发火灾,人类决...

diezhen8177的博客 170

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【luogu P2279 [HNOI2003]消防局的设立】 题解

题目链接:https://www.luogu.org/problemnew/show/P2279 想怎么贪怎么贪 #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespa...

301

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

luogu P2279 [HNOI2003]消防局的设立

I’ve known that S.H.E’s just released beautiful world this morning in radio. But it only has live beta(That’s too bad). Description\text{Description}Description Given interger N and&nb...

YangHao5的博客 372

luogu2279_[HNOI2003]消防局的设立 贪心

传送门 不需要树形dp 关于深度排序 当前节点到最近的消防局(f[u])>2时要建新的与u的上面(v)的上面(w) 同时w的上面和上面的上面也要更新f值 1 #include <bits/stdc++.h> 2 using namespace std; 3 #define rep(i, a, b) for (int i = a; i <= ...

alexsong_19720330的博客 187

[Luogu P2279][HNOI 2003] 消防局的设立题解 贪心 / 树形dp

文章目录题目描述样例输入输出解题思路贪心解法参考代码dp解法参考代码 题目描述 题目描述 2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地。起初为了节约材料,人类只修建了n-1条道路来连接这些基地,并且每两个基地都能够通过道路到达,所以所有的基地形成了一个巨大的树状结构。如果基地A到基地B至少要经过d条道路的话,我们称基地A到基地B的距离为d。 由于火星上非常干燥,经常引发火灾,人类...

cosini的博客 407

(Luogu) P2279 [HNOI2003]消防局的设立

传送门 解题思路:此题可以树形dp也可以贪心过,看了第一篇题解,非常nice!贪心的策略也很好想,我们从深度最大的开始,他没有孩子孙子,我们自然选择去建立他的祖父,这样可以覆盖到更多的点,我们如何去判断点是否已经被覆盖到了呢,可以开一个o数组 o[i]表示 i到最近的消防站的距离 初始化为 0x3f3f3f3f 。代码如下: #include&lt;cstdio&gt; #include&l...

一只不争气的蒸汽机的博客 242

luogu 2279 [HNOI2003]消防局的设立 树形dp

就是细节多一些,思路都非常常规. Code: #include <bits/stdc++.h> #define N 1005 #define inf 1061109567 #define ll long long #define setIO(s) freopen(s".in","r",stdin) using namespace...

EM LGH 91

LUOGU P2279 [HNOI2003]消防局的设立

传送门 解题思路 和以前做的一道题比较像,贪心+dfs,首先用一个优先队列,将所有的叶节点存到优先队列里,每次找到一个深度最大的,向上扩展2*2+1个节点,这些点都打上标记,然后把向上第6个点的当做叶节点继续放入优先队列,直到所有点被遍历。时间复杂度O(nlogn)。 #include<iostream> #include<cstdio> #i...

weixin_30800807的博客 163

[Luogu] P2279 [HNOI2003]消防局的设立

题目描述 2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地。起初为了节约材料,人类只修建了n-1条道路来连接这些基地,并且每两个基地都能够通过道路到达,所以所有的基地形成了一个巨大的树状结构。如果基地A到基地B至少要经过d条道路的话,我们称基地A到基地B的距离为d。 由于火星上非常干燥,经常引发火灾,人类决定在火星上修建若干个消防局。消防局只能修建在基地里,每个消防局有能力扑灭与...

weixin_30730151的博客 105
上一篇: [2018.10.25 T3] 旅程
下一篇: Luogu3942 将军令
ShadyPi
博客等级 码龄9年 1万+粉丝 637原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值