hiho刷题日记——第十三天最近公共祖先·一

基于 OptiSystem 的掺铒光纤放大器(EDFA)分析 通过构建 EDFA 仿真模型,系统分析了铒离子掺杂半径、离子浓度、光纤长度及泵浦功率等关键参数对放大器增益和噪声特性的影响规律,为 EDFA 的优化设计提供了理论依据与仿真支撑。继续增大至 9μm,增益趋于稳定(约 19dB)。继续增加至 200mW,增益仅增加 2dB,表明泵浦功率存在阈值效应(约 100mW),超过后增益饱和明显。:作为增益介质,主要参数包括光纤长度(5~50m)、铒离子掺杂半径(1~10μm)、离子浓度(1×10²⁵~5×10²⁵m⁻³)、纤芯半径 2.2μm、数值孔径 0.24。 阅读详情

题目

已知一棵族谱树。查找两个人的最近公共祖先。

输入

每个测试点(输入文件)有且仅有一组测试数据。
每组测试数据的第1行为一个整数N,意义如前文所述。
每组测试数据的第2~N+1行,每行分别描述一对父子关系,其中第i+1行为两个由大小写字母组成的字符串Father_i, Son_i,分别表示父亲的名字和儿子的名字。
每组测试数据的第N+2行为一个整数M,表示小Hi总共询问的次数。
每组测试数据的第N+3~N+M+2行,每行分别描述一个询问,其中第N+i+2行为两个由大小写字母组成的字符串Name1_i, Name2_i,分别表示小Hi询问中的两个名字。
对于100%的数据,满足N<=10^2,M<=10^2, 且数据中所有涉及的人物中不存在两个名字相同的人(即姓名唯一的确定了一个人)。

输出

对于每组测试数据,对于每个小Hi的询问,输出一行,表示查询的结果:如果根据已知信息,可以判定询问中的两个人存在共同的祖先,则输出他们的所有共同祖先中辈分最低的一个人的名字,否则输出-1。

思路

首先建立一棵族谱树。对于输入的父子关系做记录:father[son_name]=father_name;
然后开始找最近公共祖先。对于查询两个人(name1,name2)用一下方式查找:
1.将name1及其所有的祖先做标记mark。
2.查询name2的祖先,找到的第一个被做了标记的祖先便是他们最近的公共祖先。若找到底都没找到,则name1和name2没有公共祖先。

代码

#include<cstdio> 
#include<iostream>
#include<string>
#include<vector>
#include<map>

using namespace std;
int N;

map<string,string> fa;
map<string,int> mask;

int main()
{

    string fn,sn;
    scanf("%d",&N);
    while(N--)
    {
        cin>>fn>>sn;
        fa[sn]=fn;
        mask[sn]=0;
        mask[fn]=0;
    } 

    scanf("%d",&N);
    while(N--)
    {
        for(map<string,int>::iterator ite = mask.begin(); ite != mask.end(); ite++) 
        {   
            ite->second=0;
        }
        cin>>fn>>sn;

        while(fa.count(fn))
        {
            mask[fn]=1;
            fn=fa[fn];
        }
        mask[fn]=1;
        while(fa.count(sn) && !mask[sn])
        {
            sn=fa[sn];
        }
        if(mask[sn]) cout<<sn<<endl;
        else cout<<-1<<endl; 
    }

    return 0;
}
北京理工大学计算机学院赵曜,中国进出口银行2016年度拟接收毕业生情况公示... 《中国进出口银行2016年度拟接收毕业生情况公示》由会员分享,可在线阅读,更多相关《中国进出口银行2016年度拟接收毕业生情况公示(5页珍藏版)》请在技术文库上搜索。1、二级(三级)单位二级(三级)单位姓名姓名性别性别学历学历毕业学校毕业学校专业专业 中国进出口银行总行 机关 许凯男硕士研究生北京大学法学 中国进出口银行总行 机关 冯晨男硕士研究生北京大学教育技术学 中国进出口银行总行 机关 刘鹏... 阅读详情

相关推荐

欢乐熊大话蓝牙知识16:蓝牙是怎么找设备的?扫描与广播的“对话内幕”

蓝牙是怎么找设备的?扫描与广播的对话技术介绍

hoony123的博客 1381

hiho第十三周 最近的公共祖先

时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho最近发现了一个神奇的网站!虽然还不够像58同城那样神奇,但这个网站仍然让小Ho乐在其中,但这是为什么呢? “为什么呢?”小Hi如是问道,在他的观察中小Ho已经沉迷这个网站一周之久了,甚至连他心爱的树玩具都弃置一边。 “嘿嘿,小Hi,你快过来看!”小Ho招呼道。 “你看,在这个对

u010443572的专栏 524

LLM大模型-vLLM本地部署全流程:Windows WSL2环境安装、HuggingFace与Modelscope模型加载与本地运行、Docker化部署与镜像分发

vLLM本地部署大模型方案 vLLM是一款高性能大模型推理引擎,通过PagedAttention技术显著提升吞吐量和内存效率,支持低成本、高并发的本地部署。 核心优势: 性能卓越:吞吐量远超同类方案,支持连续批处理等高级功能 成本优化:减少GPU服务器需求 兼容性强:提供类OpenAI的简洁API 部署步骤: 硬件准备:需NVIDIA GPU(如A100/3090),显存≥模型参数量×2(7B模型需14GB) 软件环境: Linux系统或Windows WSL2 安装CUDA 12.1+和Python 3.

2202_75674969的博客 4566

经典算法:寻找最近公共祖先

题目 假设现在他知道了N个人的信息——他们的父亲是谁。给出两个人的名字,找出这两个人是否存在同一个祖先,如果存在,那么他们的所有共同祖先中辈分最低的一个是谁? 输入输出 每个测试点(输入文件)有且仅有一组测试数据。 每组测试数据的第1行为一个整数N,意义如前文所述。 每组测试数据的第2~N+1行,每行分别描述一对父子关系,其中第i+1行为两个由大小写字母组成的字符串F

我的专栏 7676

【电击防护篇】电击防护技术详解:从人体效应到接地系统全解析

本文系统讲解了电击防护的关键知识,包括电流对人体的影响(如30mA是心室颤动阈值)、人体电阻特性(700Ω-6100Ω)以及电气接触防护措施。重点分析了TT、TN和IT三大接地系统的结构特点与应用场景,强调TN-S系统最安全,IT系统供电连续性最佳。详细介绍了漏电保护器(RCD)的工作原理与选型指南,建议人身防护选用30mA高灵敏度RCD。文章通过对比表总结三大系统的安全性、成本及适用场景,为电气安全设计提供实用参考。

2301_81299416的博客 1742

Python Trimesh库实战:5分钟搞定STL文件解析与3D模型可视化

本文介绍了如何使用Python的Trimesh库快速解析STL文件并进行3D模型可视化。通过简洁的代码示例,演示了从环境搭建、模型加载、几何数据提取到基础变换和批量处理的核心流程,帮助开发者和工程师在5分钟内高效完成3D数据处理与可视化任务。

weixin_32005771的博客 159

离线LCA学习

题目1 : 最近公共祖先·二 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 上上回说到,小Hi和小Ho用非常拙劣——或者说粗糙的手段山寨出了一个神奇的网站,这个网站可以计算出某两个人的所有共同祖先中辈分最低的一个是谁。远在美国的他们利用了一些奇妙的技术获得了国内许多人的相关信息,并且搭建了一个小小的网站来应付来自四面

u013268685的专栏(有一种幸福叫AC,有一种期待叫AK) 1379

一文带你了解SOA接口测试

了解汽车电子行业的人,近几年可能经常见到一个词“SOA”,那SOA具体是什么?作为测试人员应该要测试哪些内容呢?这篇文章就简单给大家介绍一下。SOA(Service Oriented Architecture)是一种面向服务的架构,最早应用于IT行业,虽然行业内对于SOA的定义没有一个统一的描述,但是总体而言,SOA把功能定义成为服务,服务带有明确的可调用接口,并可以通过网络调用。在汽车领域,对于高性能计算平台而言,为了实现域控制器以及区域控制器之间的互联互通和软硬分离、缩短开发周期等优势,也引入了SOA的

怿星科技的博客 7155

hihoCoder #1062 : 最近公共祖先·一

写这篇博客的原因是缅怀一下这个题WA了两个小时的时光~~~~ 原命题链接: hihoCoder; Vjudge 1062 : 最近公共祖先·一 &amp;gt; Time Limit:10000ms Case Time Limit:1000ms Memory Limit:256MB 描述 小Ho最近发现了一个神奇的网站!虽然还不够像58同城那样神奇,但...

FancyKing的博客 604

详解【异质图卷积网络 RGCN】回顾:图神经网络问题的三大处理步骤 | 从起源说起,RGCN核心公式解释,两种降低模型参数量/优化的方式,附核心代码实现讲解

本篇,我们深入分析和学习RGCN的原理以及为何要这么做。首先让我们来回顾对于图神经网络问题的三大处理步骤,可以说,这是该深度学习模型的基本理解,后续都是在深化其中的细节处理。然后以容易理解的方式,引出异质图卷积网络RGCN的由来,主要讲解其核心公式和论文中作者所提出的两种降低模型参数量/优化的处理办法,并给出基础分解以及块对角分解的核心实现代码讲解。最后附上RGCN源代码及说明。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 1279

SAP Group Reporting入门指南(8)--业务操作

关于资产负债表类的匹配,系统预设了SGR01和SGR02两个方法,主要区别在于数据的来源范围,SGR01取自ACDOCA和ACDOCU,如果是0F类型的就会直接显示日记账分录(期间是000的除外,这类凭证是年结结转的,系统不再跨年追溯),如果是其他类型就显示合并分录。这里是我觉得SAP还需要优化的地方。基于ICMR的抵消任务中通常将抵销差异细分为交易差异、货币换算差异和其他差异,这在基于重分类抵消任务是无法实现的,基于重分类抵消只知道一个差异总额,很难从合并抵消凭证看出差异的来源,也没有审计线索可言。

bflyfish的博客 276

#1062 : 最近公共祖先·一

题目链接地址 输入 每个测试点(输入文件)有且仅有一组测试数据。 每组测试数据的第1行为一个整数N,意义如前文所述。 每组测试数据的第2~N+1行,每行分别描述一对父子关系,其中第i+1行为两个由大小写字母组成的字符串Father_i, Son_i,分别表示父亲的名字和儿子的名字。 每组测试数据的第N+2行为一个整数M,表示小Hi总共询问的次数。 每组测

hulamua的博客 540

FANUC机器人通过ROBOGUIDE实现与实际的机器人进行程序导入导出的具体方法示例

FANUC机器人通过ROBOGUIDE实现与实际的机器人进行程序导入导出的具体方法示例

Robot_PLC_HMI_Automation 6535

hiho刷题日记——第十五最近公共祖先·二

题目与最近公共祖先·一 将设置关系数量和查询关系数量的数量级都从100提升到100000。思路用邻接表,将家族关系建树,查询情况建图。 使用离线算法的方式,通过一次深度优先遍历家族树,得出所有查询的答案。 遍历时,第一次访问结点,将该节点做个标记1。访问完结点的所有子结点时,标记为2。 在遍历到一个节点时,在查询图中扫描所有该节点的边,检查边的另一个端点的标记。若标记为0,无视;若标记为1,

AngcFun的博客 694

数学建模模型总结

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

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

hiho刷题日记——第十七天最近公共祖先·三

问题还是最近公共祖先问题。思路之前用了Tarjan算法来做。但是这里遇到一个问题就是如果只有一个询问,那么将很难决定到底是针对这个询问就直接进行计算还是等待一定数量的询问一起计算。毕竟无论是一个询问还是很多个询问,使用离线算法都是只需要做一次深度优先搜索就可以了的。 所以这一次改用一个在线算法。 先根据输入建立一棵家族树。 建立好家族树之后,深度遍历该树。使用一个数组来记录走过的路径(无论是从

AngcFun的博客 601

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

hihoCoder #1069 最近公共祖先·三

#1069 : 最近公共祖先·三 Time Limit:10000ms Case Time Limit:1000ms Memory Limit:256MB 描述 上上回说到,小Hi和小Ho使用了Tarjan算法来优化了他们的“最近公共祖先”网站,但是很快这样一个离线算法就出现了问题:如果只有一个人提出了询问,那么小Hi和小Ho很难决定到底是针对这个询...

weixin_30455023的博客 202

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

家谱(并查集)

Description 现代的人对于本家族血统越来越感兴趣, 现在给出充足的父子关系, 请你编写程序找到 某个人的最早的祖先。 Input 输入文件由多行组成, 首先是一系列有关父子关系的描述, 其中每一组父子关系由二行 组成,用#name 的形式描写一组父子关系中的父亲的名字,用+name 的形式描写一组父子关 系中的儿子的名字;接下来用?name 的形式表示要求该人的最早的祖先;最后用单

liangzihao1的博客 1462

hiho刷题日记——第三十一天小Hi小Ho的惊天大作战:扫雷·二

题目这次的扫雷是二维的了。根据三种规则做一次判断,判断出一定是雷和一定不是雷的数量。 1.如果某一个被探明的格子里所标的数字为0,那么它相邻的8个格子里的未探明格子被认作是一定不是地雷的格子。 2.如果某一个被探明的格子里所标的数字为K,且它相邻的8个格子里正好有K个没有探明的格子的话,则这K个没有探明的格子被认作是一定是地雷的格子。 3.如果某两个探明了的格子A和B,他们中标明的数字分别为P

AngcFun的博客 1530

hiho刷题日记——第三十天小Hi小Ho的惊天大作战:扫雷·一

题目简化版扫雷,只有一行。 给出一行的周围3格中是雷的数量。 判断哪些一定是雷,一定不是雷。 思路因为给出的信息是环环相扣的,不用一个一个去试。 只需要试第一格是否为雷就可以通过数据算出后面是否为雷。 所以只用试两次, 第一次把一格设为雷,算出后面的情况;第二次把第一格设为不是雷,算出后面的情况。 若两次都算出来了,则将两次的情况对比,没有变化的部分就是答案。 若只有一次满足条件,则

AngcFun的博客 1234

hiho刷题日记——第十二天刷油漆

题目一共N个结点的树(1至N编号),油漆能够涂M个结点。 将包含1号结点的一部分连通的结点进行涂漆(这里的连通指的是这一些涂漆的结点可以互相到达并且不会经过没有涂漆的结点),然后将剩下的结点拆掉!那么究竟选择哪些结点进行涂漆呢?小Ho想了想给每个结点都评上了分——他希望最后留下来,也就是涂漆了的那些结点的评分之和可以尽可能的高!输入每个测试点(输入文件)有且仅有一组测试数据。 每组测试数据的第一

AngcFun的博客 1014

hiho刷题日记——第九天状态压缩·二

hiho刷题日记——第九天天状态压缩·二题目小Hi和小Ho领到了一个大小为N*M的长方形盘子,他们可以用这个盒子来装一些大小为2*1的蛋糕。但是根据要求,他们一定要将这个盘子装的满满的,一点缝隙也不能留下来,才能够将这些蛋糕带走。这么简单的问题自然难不倒小Hi和小Ho,于是他们很快的就拿着蛋糕离开了~但小Ho却不只满足于此,于是他提出了一个问题——他们有多少种方案来装满这个N*M的盘子呢?代码#in

AngcFun的博客 971

hiho刷题日记——第十六天RMQ-ST算法

这两天有事停了两天。这道题也是调了不少时间。好累呀。真想就直接贴代码。ST定义ST[Len][L]表示左边界为L,长度为2^Len的区间中的最小值。则有 ST[Len][L]=min(ST[Len-1][L],ST[Len-1][L+2^(Len-1)]; 然后就可以循环求出所有的ST。答案取小于这个区间长度的最大的2的非负整数次幂T,则答案为min(ST[Len][L],ST[Len][R+1

AngcFun的博客 888

hiho刷题日记——第十一天树中的最长路

题目给出一个无根树(其实就可以之间看作一个特殊的无向图) 求出该无根树的最长路 样例输入 8 1 2 1 3 1 4 4 5 3 6 6 7 7 8 样例输出 6思路对于任意一个节点,将其视为根节点,找到深度最深的节点记录下来。 再将找到的节点作为根节点找出深度最深的节点,两点之间的路便是这无根树的最长路。原因假设我们已知了最长路的两个端点。那么将这颗无根树上的任意一个节点

AngcFun的博客 868

hiho刷题日记——第六天01背包

简单的01背包问题,简单的说就是将已有的资源发挥出最大的价值。

AngcFun的博客 743

hiho刷题日记——第三天KMP算法

用KMP来求模式串在原串中的出现次数.

AngcFun的博客 702

hiho刷题日记——第八天状态压缩·一

当状态转移方程中状态过多时,进行压缩

AngcFun的博客 701
上一篇: hiho刷题日记——第十二天刷油漆
下一篇: hiho刷题日记——第十四天无间道之并查集
昂村饭
博客等级 码龄12年 5粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值