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

2120 -- 预警系统题解

Description

OiersOiers 国的预警系统是一棵树,树中有 �n 个结点,编号 1∼�1∼n,树中每条边的长度均为 11。预警系统中只有一个预警信号发射站,就是树的根结点 11 号结点,其它 �−1n−1 个结点是接收中转站。
每当有险情发生时,11 号结点就会向 �x 号结点发送预警信号,然后由 �x 号结点将预警信号传送到离 11 号结点距离为 �y 的所有结点,注意:所有传送是单向的,都是由根结点向叶子结点方向传送,请参考样例。
你的任务是计算每次发送预警时,�x 号结点需要将预警信号传送到离 11 号结点距离为 �y 的结点个数。

Input

第一行一个整数 �n。
第二行 �−1n−1 个整数 ��2,��3,⋯,���fa2​,fa3​,⋯,fan​ 描述树,整数 ���fai​ 表示结点 �i 的父亲结点为 ���(2≤�≤�)fai​(2≤i≤n)。
第三行一个整数 �m,表示有 �m 次险情发生,需要发送 �m 次预警信号,即有 �m 次询问。
接下来 �m 行,每行两个整数 �,�x,y。

Output

输出 m 行,每行一个整数,表示�x 号结点需要将预警信号传送到离 11 号结点距离为 �y 的结点个数。

Sample Input

7
1 2 2 2 1 3
4
1 2
5 2
4 1
3 5

Sample Output

3
1
0
0

Sample Explanation

在第一个询问中,由 11 号结点传送到距 11 号结点距离为 22 的结点有 3,4,53,4,5 三个结点。
在第二个询问中,由 55 号结点传送到距 11 号结点距离为 22 的结点只有 55 号自身一个结点。
在第三个询问中,由 44 号结点传送到距 11 号结点距离为 11 的结点不存在,因为传送只能往下进行。
在第四个询问中,由 33 号结点传送到距 11 号结点距离为 55 的结点不存在。

Hint

本题共 2525 个测试点,其中:
20%20% 的数据:1≤�≤1001≤n≤100,1≤�≤101≤m≤10;
另有 12%12% 的数据:1≤�≤1001≤n≤100,1≤�≤101≤m≤10,树为一条链;
100%100% 的数据:2≤�≤2×1052≤n≤2×105,1≤���<�1≤fai​<i,1≤�≤2×1051≤m≤2×105,1≤�≤�1≤x≤n,0≤�≤�−10≤y≤n−1。

AC代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,u,y,id,time_id,d[200009],tim_in[200009],tim_out[200009],head[200009];
vector<int> v[200009];
struct edge{int u,v,next;
}e[400009];
void add(int u,int v){e[++id]=edge{u,v,head[u]};head[u]=id;
}
void dfs(int u,int fa){d[u]=d[fa]+1;tim_in[u]=++time_id;v[d[u]].push_back(tim_in[u]);for(int i=head[u];i;i=e[i].next) dfs(e[i].v,u);tim_out[u]=time_id;
}
int main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n;for(int i=2;i<=n;i++){cin>>u;add(u,i);}d[0]=-1;dfs(1,0);cin>>m;for(int i=1;i<=m;i++){cin>>u>>y;cout<<upper_bound(v[y].begin(),v[y].end(),tim_out[u]) - lower_bound(v[y].begin(),v[y].end(),tim_in[u])<<'\n';}return 0;
}

总结:

这题得用一种叫DFS序的东西,二分求最值

相关文章:

2120 -- 预警系统题解

Description OiersOiers 国的预警系统是一棵树&#xff0c;树中有 &#xfffd;n 个结点&#xff0c;编号 1∼&#xfffd;1∼n&#xff0c;树中每条边的长度均为 11。预警系统中只有一个预警信号发射站&#xff0c;就是树的根结点 11 号结点&#xff0c;其它 &#xfffd;−1…...

C++入门-day01

一、认识C C融合了三种不同的编程方式 C代表的过程性语言在C基础上添加的类、结构体puls代表的面向对象语言C模板支持泛型编程 C完全兼容C的特性 Tips&#xff1a;侯捷老师提倡的Modren C是指C11、C14、C17和C20这些新标准所引入的一系列新特性和改进。在我们练习的时候也应当去…...

Android开源 Skeleton 骨架屏 V1.3.0

目录 一、简介 二、效果图 三、引用 Skeleton 添加jitpack 仓库 添加依赖: 四、新增 “块”骨架屏 1、bind方法更改和变化&#xff1a; 2、load方法更改和变化&#xff1a; 五、关于上一个版本 一、简介 骨架屏的作用是在网络请求较慢时&#xff0c;提供基础占位&…...

网络资料搬运(2)

(1) Ubuntu 22.04&#xff1a; 为 Ubuntu22.04 系统添加中文输入法 linux解压gz文件的命令 Ubuntu20.04出现Unit ssh.service could not be found 详解使用SSH远程连接Ubuntu服务器系统 Configuring networks&#xff08;配置网络&#xff09; (2) Python && OpenCV: …...

SEO搜索引擎

利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名&#xff0c;吸引更多的用户访问网站&#xff0c;提高网站的访问量&#xff0c;提高网站的销售能力和宣传能力&#xff0c;从而提升网站的品牌效应 搜索引擎优化的技术手段 黑帽SEO 通过欺骗技术和滥用搜索算法来推销毫不…...

动态规划-状态机(188. 买卖股票的最佳时机 IV)

状态分类&#xff1a; f[i,j,0]考虑前i只股票&#xff0c;进行了j笔交易&#xff0c;目前未持有股票 所能获得最大利润 f[i,j,1]考虑前i只股票&#xff0c;进行了j笔交易&#xff0c;目前持有股票 所能获得最大利润 状态转移&#xff1a; f[i][j][0] Math.max(f[i-1][j][0],f[…...

银行业务队列简单模拟(队列应用)

设某银行有A、B两个业务窗口&#xff0c;且处理业务的速度不一样&#xff0c;其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时&#xff0c;B窗口处理完1个顾客。给定到达银行的顾客序列&#xff0c;请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时…...

2023/8/8 下午10:42:04 objectarx

2023/8/8 下午10:42:04 objectarx 2023/8/8 下午10:42:16 ObjectARX(AutoCAD Runtime Extension)是用于开发和自定义AutoCAD软件的编程接口。ObjectARX允许开发者使用C++、.NET等编程语言来创建插件、扩展功能和定制化AutoCAD的行为。 通过ObjectARX,开发者可以访问Auto…...

Day-06 基于 Docker安装 Nginx 镜像

1.去官方公有仓库查询nginx镜像 docker search nginx 2.拉取该镜像 docker pull nginx 3. 启动镜像&#xff0c;使用nginx服务&#xff0c;代理本机8080端口(测试是不是好使) docker run -d -p 8080:80 --name nginx-8080 nginx docker ps curl 127.0.0.1:8080...

linux入门---信号的保存和捕捉

目录标题 信号的一些概念信号的保存pending表block表handler表 信号的捕捉内核态和用户态信号的捕捉 信号的一些概念 1.进程会收到各种各样的信号&#xff0c;那么程序对该信号进行实际处理的动作叫做信号的递达。 2.我们之前说过当进程收到信号的时候可能并不会立即处理这个信…...

5.外部中断

中断初始化配置步骤&#xff1a; IO口初始化配置 开启中断总允许EA 打开某个IO口的中断允许 打开IO口的某一位的中断允许 配置该位的中断触发方式 中断函数&#xff1a; #pragma vector PxINT_VECTOR __interrupt void 函数名(void){}#pragma vector PxINT_VECTOR __int…...

Mydb数据库问题

1、请简要介绍一下这个基于 Java 的简易数据库管理系统。它的主要功能是什么&#xff1f; TM&#xff08;Transaction Manager&#xff09;&#xff1a;事务管理器&#xff0c;用于维护事务的状态&#xff0c;并提供接口供其他模块查询某个事务的状态。DM&#xff08;Data Man…...

部署并应用ByteTrack实现目标跟踪

尽管YOLOv8已经集成了ByteTrack算法&#xff0c;但在这里我还是想利用ByteTrack官网的代码&#xff0c;自己实现目标跟踪。 要想应用ByteTrack算法&#xff0c;首先就要从ByteTrack官网上下载并安装。虽然官网上介绍得很简单&#xff0c;只需要区区6行代码&#xff0c;但对于国…...

MacOS怎么配置JDK环境变量

1 输入命令看是否配置了JDk 的环境变量&#xff1a;echo $JAVA_HOME 要是什么也没输出 证明是没配置 2 输入命令编辑 sudo vim ~/.bash_profile 然后按 i &#xff0c;进入编辑模式&#xff0c;粘贴下面的代码&#xff0c;注意&#xff1a;JAVA_HOME后面路径需要改成自己的版…...

Spring Boot 开发16个实用的技巧

当涉及到使用Spring Boot开发应用程序时&#xff0c;以下是16个实用的技巧&#xff1a; 1. **使用Spring Initializr**&#xff1a;Spring Initializr是一个快速创建Spring Boot项目的工具&#xff0c;可以帮助您选择项目依赖和生成项目骨架。 2. **自动配置**&#xff1a;Sp…...

《机器学习实战》学习记录-ch2

PS: 个人笔记&#xff0c;建议不看 原书资料&#xff1a;https://github.com/ageron/handson-ml2 2.1数据获取 import pandas as pd data pd.read_csv(r"C:\Users\cyan\Desktop\AI\ML\handson-ml2\datasets\housing\housing.csv")data.head() data.info()<clas…...

lv7 嵌入式开发-网络编程开发 07 TCP服务器实现

目录 1 函数介绍 1.1 socket函数 与 通信域 1.2 bind函数 与 通信结构体 1.3 listen函数 与 accept函数 2 TCP服务端代码实现 3 TCP客户端代码实现 4 代码优化 5 练习 1 函数介绍 其中read、write、close在IO中已经介绍过&#xff0c;只需了解socket、bind、listen、acc…...

mysql技术文档--阿里巴巴java准则《Mysql数据库建表规约》--结合阿丹理解尝试解读--国庆开卷

阿丹&#xff1a; 国庆快乐呀大家&#xff01; 在项目开始前一个好的设计、一个健康的表关系&#xff0c;不仅会让开发变的有趣舒服&#xff0c;也会在后期的维护和升级迭代中让系统不断的成长。那么今天就认识和解读一下阿里的准则&#xff01;&#xff01; 建表规约 表达是…...

Qt+openCV学习笔记(十六)Qt6.6.0rc+openCV4.8.1+emsdk3.1.37编译静态库

前言&#xff1a; 有段时间没来写文章了&#xff0c;趁编译库的空闲&#xff0c;再写一篇记录文档 WebAssembly的发展逐渐成熟&#xff0c;即便不了解相关技术&#xff0c;web前端也在不经意中使用了相关技术的库&#xff0c;本篇文档记录下如何编译WebAssembly版本的openCV&…...

JUC第十四讲:JUC锁: ReentrantReadWriteLock详解

JUC第十四讲&#xff1a;JUC锁: ReentrantReadWriteLock详解 本文是JUC第十四讲&#xff1a;JUC锁 - ReentrantReadWriteLock详解。ReentrantReadWriteLock表示可重入读写锁&#xff0c;ReentrantReadWriteLock中包含了两种锁&#xff0c;读锁ReadLock和写锁WriteLock&#xff…...

不止于公式:用国民技术N32G45x定时器实现精准时间片调度(附代码)

不止于公式&#xff1a;用国民技术N32G45x定时器实现精准时间片调度&#xff08;附代码&#xff09; 在嵌入式系统开发中&#xff0c;定时器是最基础也最强大的外设之一。对于国民技术N32G45x系列微控制器而言&#xff0c;其丰富的定时器资源&#xff08;TIM2/3/4等&#xff09…...

各向异性方解石晶体的双折射效应

1. 摘要 双折射效应是各向异性材料最重要的光学特性&#xff0c;并广泛应用于多种光学器件。当入射光波撞击各向异性材料&#xff0c;会以不同的偏振态分束到不同路径&#xff0c;即众所周知的寻常光束和异常光束。在本示例中&#xff0c;描述了如何利用VirtualLab Fusion对双折…...

vLLM-v0.17.1详细步骤:vLLM + Triton Ensemble实现多模型协同推理

vLLM-v0.17.1详细步骤&#xff1a;vLLM Triton Ensemble实现多模型协同推理 1. vLLM框架简介 vLLM是一个专为大型语言模型(LLM)设计的高性能推理和服务库&#xff0c;以其出色的吞吐量和易用性著称。这个项目最初由加州大学伯克利分校的天空计算实验室开发&#xff0c;现在已…...

zotero-style:智能文献管理在学术研究中的创新实践

zotero-style&#xff1a;智能文献管理在学术研究中的创新实践 【免费下载链接】zotero-style zotero-style - 一个 Zotero 插件&#xff0c;提供了一系列功能来增强 Zotero 的用户体验&#xff0c;如阅读进度可视化和标签管理&#xff0c;适合研究人员和学者。 项目地址: ht…...

新手友好:在快马平台用mc、jc相关案例轻松上手前端开发

作为一个刚接触前端开发的新手&#xff0c;我最近在InsCode(快马)平台尝试做了一个特别适合练手的小工具——代码行数统计器。这个项目用最基础的HTML、CSS和JavaScript实现&#xff0c;但包含了前端开发的几个核心概念&#xff0c;特别适合想通过实际案例学习的朋友。 项目功能…...

手把手教你用R玩转MSigDB:从数据库下载、基因集构建到GSEA/GSVA完整流程

手把手教你用R玩转MSigDB&#xff1a;从数据库下载、基因集构建到GSEA/GSVA完整流程 如果你正在寻找一个权威的基因集数据库来支持你的转录组功能分析&#xff0c;MSigDB&#xff08;Molecular Signatures Database&#xff09;无疑是首选。作为Broad研究所维护的核心资源&…...

深入解析:高级 Android 开发工程师职位与面试全攻略

引言:移动互联网时代的核心力量 在当今移动互联网蓬勃发展的时代,智能手机已成为人们日常生活中不可或缺的一部分。作为连接用户与数字服务的桥梁,移动应用扮演着至关重要的角色。而在移动应用的生态中,Android 系统凭借其开放性和庞大的用户基础,占据了全球移动操作系统…...

图解DySAT:5张信息图带你吃透动态图表示学习的自注意力机制

动态图神经网络DySAT&#xff1a;用自注意力机制捕捉时空演化的5个关键视角 当我们在社交网络上关注好友动态时&#xff0c;既会注意不同朋友间的关联强度&#xff08;谁和谁互动更密切&#xff09;&#xff0c;也会追踪这些关系随时间的变化模式&#xff08;某段关系何时变得亲…...

Python实战:从零构建基于腾讯混元大模型的智能客服系统

1. 为什么选择腾讯混元大模型做智能客服 最近两年大模型技术突飞猛进&#xff0c;但真正要把大模型落地到实际业务中&#xff0c;很多开发者都会遇到三个头疼的问题&#xff1a;第一是模型效果不稳定&#xff0c;第二是API调用复杂&#xff0c;第三是业务逻辑难集成。我在帮几…...

LongCat-Image-Editn部署案例:中小企业低成本AI修图方案,替代Photoshop高频操作

LongCat-Image-Editn部署案例&#xff1a;中小企业低成本AI修图方案&#xff0c;替代Photoshop高频操作 重要提示&#xff1a;本文所有操作均在合规合法的网络环境下进行&#xff0c;所有技术方案均符合相关法律法规要求。 1. 引言&#xff1a;中小企业修图痛点与解决方案 对于…...