PAT甲级 1021 Deepest Root

1021 Deepest Root (PAT甲级) 柳婼的解法在这里,两次dfs,还是挺好玩的。我的解法比较暴力,就是先用并查集算连通分量(这个其实还是dfs来算会更方便),如果只有一个连通分量,那deepest root一定在仅有一条arc的点上(除了只有一个结点的树,可以一开始就特殊考虑),然后从这些点开始dfs,算出深度最高的那些root。 阅读详情

1021 Deepest Root

题目大意:给出一个图,判断是否是一棵树,如果不是则输出连通分量个数,如果是则输出使得树最高的那个根节点。

思路:一开始我想的是先判断连通块然后再dfs求出每个节点的树高,把树高最长的节点记录下来,但是好几个超时;后来想着先求出从1开始遍历(这里别的点应该也行)离它最远的点记录下来(保存到集合中),再求出从这个集合里面第一个元素(别的也可以)dfs的结果,将距离最长的点保存下来,然后两个集合求并集就是答案。这里可以用反证法,第一个集合里的元素求dfs最大深度时必然会经过1(如果不经过则说明离1最远的不是它,就不会收入第一个集合),然后从1出发再找出最远距离即可。

注:由于我用的是python测试点3还是会超时,第一次用的cpp完全AC不是用的此种方法(一眼就知道python一定会爆掉也就懒得用了)

#测试点3超时
def DFS(index,depth):
    global n
    global max_depth
    if depth>max_depth: #若当前深度超过已有的最大深度则更新最大高度且根数组清空,放入当前节点
        max_depth=depth
        root.clear()
        root.add(index)
    elif depth==max_depth:  #若当前深度等于最大深度则将该节点加入根数组中
        root.add(index)
    visit[index]=True
    for i in range(1,n+1):
        if i in graph[index] and not visit[i]:    #若index与i之间有边且i未访问过则继续向下遍历
            DFS(i,depth+1)
    return

def DFSTraversal():
    global n
    global visit
    cnt=0
    for i in range(1,n+1):  #判断连通块的个数
        if not visit[i]:
            DFS(i,1)
            cnt+=1
    return cnt

n=int(input())
max_depth=0
root=set()
visit=[False for x in range(n+1)]
graph={}
for i in range(1,n+1):
    graph[i]=[]
for i in range(n-1):
    v1,v2=map(int,input().split())
    graph[v1].append(v2)
    graph[v2].append(v1)
cnt=DFSTraversal()
if cnt>1:
    print("Error: %d components" % cnt,end="")
else:   #由于题目明确说明是n个顶点n-1条边,所以当连通块的数量是1时一定不是环
    s1=root.copy()
    for i in root:
        visit=[False for x in range(n+1)]
        DFS(i,1)
        break
    s2=root.copy()
    for i in s2:
        s1.add(i)
    l=list(s1)
    l.sort()
    for i in l:
        print(i)

【调试记录】GT ip跑aurora 64b66b协议 如果不用,会出现这种情况:自回环测试,数据收发ok.一旦和对方通信,对方接收的就是一堆乱码,因为GT链路发送数据不能是全1或全0,或者长时间的1或0.否则线路容易受到干扰,毕竟线速率10多G,用了加扰和解扰,就可以提高抗干扰能力。64B66B编码,数据输入是64bit,输出是66bit,所以这之间存在着2bit的带宽差,Gearbox 就是用来解决这种差异的,实现方式是:将66bit数据拿出来2bit先存入Gearbox,然后输出64bit.发送同步码或控制数据时,配置成2.2.4 加扰和解扰! 阅读详情

相关推荐

浅析图像处理中的名词:Gamma 校正(Gamma变换、Gamma调整)

浅析图像处理中的名词:Gamma 校正(Gamma变换、Gamma调整)

qq_51908382的博客 1万+

PAT甲级-1021 Deepest Root(25分)

题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805482919673856 分析:找出以某个节点为根时,最深的根,这题可能会超时要用vector来表示二维数组 疑问:代码一是第二次写的超时了,代码二是第一次写的AC了,找不出超时代码的问题,难受o(╥﹏╥)o 代码一:超时了 #include <iostream> #include<cstring> #include<vector> .

WanDerIngcc的博客 319

光学仿真案例(4) 基于纳米微粒激发平面波的米氏散射FDTD仿真模拟

本案例展示了一个基于纳米粒子激发平面波的米氏散射仿真模型(mie scattering),计算其散射和吸收截面、局域场增强和远场散射分布,同时将截面和远场结果与解析解进行了比较,验证了仿真模拟的准确性。

q895235273的博客 3593

1021 Deepest Root (25分)

1021Deepest Root(25分) A graph which is connected and acyclic can be considered a tree. The height of the tree depends on the selected root. Now you are supposed to find the root that results in a h...

雪之下 285

STM32开发工具链选型:MDK、CubeIDE、VSCode与IAR深度对比

嵌入式开发工具链是连接软件逻辑与硬件行为的核心枢纽,其选择直接影响代码可靠性、调试效率与量产稳定性。从编译器优化能力、调试协议支持(如ARM CoreSight、SWO)、硬件抽象层级(寄存器/LL/HAL)到跨平台构建能力,不同工具在实时性保障、静态分析合规性(如MISRA-C)、WCET可预测性及生态开放度上存在本质差异。尤其在STM32平台,Keil MDK凭借深度调试能力成为HardFault定位首选,STM32CubeIDE依托图形化配置加速外设初始化,而VSCode+PlatformIO则以LS

weixin_42602368的博客 429

burpsuite抓取ios数据包

1:首先在burpsuite中设置 添加proxy listeners 2:电脑开热点,手机连接,把代理设为电脑的ip和代理的端口 3:在Safari浏览器中打开网址http://burp下载证书 4:打开设置->通用->描述文件与设备管理 5:设置->通用->关于本机->证书信任设置 之后就可以正常抓包了 ...

weixin_45682070的博客 2065

[Python](PAT)1021 Deepest Root(25 分)

A graph which is connected and acyclic can be considered a tree. The hight of the tree depends on the selected root. Now you are supposed to find the root that results in a highest tree. Such a root i...

贰拾壹 542

怎么选?一文读懂12种SPC控制图,从基础到进阶,再到Python代码实现

本文系统介绍了12种常用SPC控制图的应用场景和特点,包括计量型(Xbar-R图、Xbar-s图、I-MR图等)、计数型(P图、NP图、U图等)及进阶控制图(EWMA图、CUSUM图、多元控制图)。文章强调控制图是SPC的核心工具,能有效区分过程变异类型,实现"预防优于检测"的质量管理目标。通过数据示例和Python代码展示了各类控制图的实现方法,为质量管理人员提供了实用参考。

m0_56592100的博客 4128

1021. Deepest Root

考察连通分量个数,用搜索或并查集,并查集效率较高; 求最深的树根节点,用dfs // 1021. Deepest Root.cpp: 主项目文件。 #include "stdafx.h" #include <cstdio> #include <cstring> #include <vector> using namespace std; const in...

weixin_30653097的博客 126

程序员实战:DINOv3 权重文件下载与本地化部署全流程指南

Meta开源的DINOv3视觉大模型凭借70亿参数和17亿图像训练,在语义分割、目标检测等任务表现优异。本文详解预训练权重的获取渠道、校验方法和加载实践。开发者可通过HuggingFace或GitHub获取不同版本权重,包括针对服务器端的ViT系列和边缘设备的ConvNeXt系列。文章提供MD5校验代码确保文件完整性,并给出PyTorch和Transformers两种加载方式。特别强调7B模型需16GB GPU内存,建议根据硬件条件选择合适版本,如边缘设备使用ConvNeXt-Tiny。最后指出DINOv3

xiugou3365的博客 5903

FOC 电流采样方案对比(单电阻/双电阻/三电阻)

电流采样的作用 在FOC算法中,电流采样在反馈环节是相当重要的一部分,通常交流三相同步电机在进行坐标变换的时候,需要实时测量相电流,最终通过SVPWM实现电机转子磁场和定子磁场的同步转动,那么这里有三种方案,单电阻采样,双电阻采样,三电阻采样。本文参考ST的单电阻和三电阻采样以及TI的双电阻采样,结合实际中可能需要注意的地方进行总结分析。 单电阻采样 双电阻采样 三电阻采样 ...

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 4万+

1021. Deepest Root 解析

DFS的改版 需要依次对每个顶点分别进行DFS然后求深度做大的几个顶点。 理清思路应该可以出来。 #include #include #define Max 10010 using namespace std; vector g[Max]; vector isVisit; vector depth; vector Root; int N; int ThisDept

sheepyWYY的博客 659

ARM交叉编译gdbserver并远程在线调试

arm-linux平台。5、生成完整的makefile,新建full_install,执行 ./configure --target=arm-linux-gnueabihf --host=arm-linux-gnueabihf --program-prefix=arm-linux-gnueabihf- CC=arm-linux-gnueabihf-gcc --prefix=/home/geyuxi/Documents/full_install。如果--host和--build不同,是交叉编译;

wangjie36的博客 3168

【PAT 甲级】1021 Deepest Root

1021 Deepest Root

AmiaYukiAchami的博客 703

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

PAT 甲级 1021(Deepest Root )

PAT 甲级 1021题目要求翻译代码思路 题目要求 A graph which is connected and acyclic can be considered a tree. The height of the tree depends on the selected root. Now you are supposed to find the root that results in a highest tree. Such a root is called the deepest root. I

qq_42865772的博客 471

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

PAT 甲级 1021  Deepest Root

1021 Deepest Root (25 point(s)) A graph which is connected and acyclic can be considered a tree. The hight of the tree depends on the selected root. Now you are supposed to find the root that results...

漫浸天空的雨色的备忘录~ 827

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

pat 甲级 1021 Deepest Root

中文意思:一个无环连通图可以被视作一个树。树的高度取决于所选取的根节点。现在,你要找到可以使得树的高度最大的根节点。它被称为最深的根。

weixin_50671259的博客 1022

PAT甲级 1021 Deepest Root (25分)

1021 Deepest Root (25分) 题目链接:PAT A 1021 题目大意:给出一个数n代表节点的个数(节点编号1-n),给出各个边的连接方式,问哪个节点为根节点时,这棵树最高,如果有多个这样的结点,则按升序的方式输出。如果给出的图不是一棵树,那么输出它有几个部分组成。 思路分析:注意题中输入第一行是节点数目,接下来的n-1行是边。由于连通,节点数为n,边为n-1的图一定是一棵树...

weixin_43684054的博客 307

【PAT甲级 - C++题解】1021 Deepest Root

📣专栏定位:为想考甲级PAT的小伙伴整理常考算法题解,祝大家都能取得满分!

Newin2020的博客 567

PAT 甲级1021 Deepest Root

PAT 甲级1021 Deepest Root 给定N个节点和N-1条边,找到其中的最深根节点——该根节点使整个树的深度最大 先判断该图是否是一颗树,即判断连通分量个数,如果连通分量个数大于1,则说明出现了循环图,不能构成树 如果联通分量为1,就要找最深根节点,需要两次dfs。 第一次dfs从任意节点出发,**找到深度最大的叶子节点们,**然后从这些叶子节点中任意选择一个,开始dfs,再次找到深度最大的叶子节点们。 最终结果是两次dfs结果的 并集——使用set // 1021 Deepest Root.c

weixin_43480561的博客 251

PAT甲级-1021 Deepest Root (25分)

点击链接PAT甲级-AC全解汇总 题目: A graph which is connected and acyclic can be considered a tree. The height of the tree depends on the selected root. Now you are supposed to find the root that results in a highe...

卷子的博客 336

PAT真题练习(甲级)1021 Deepest Root (25 分)

PAT真题练习(甲级)1021 Deepest Root (25 分) 原题网址: https://pintia.cn/problem-sets/994805342720868352/problems/994805482919673856 A graph which is connected and acyclic can be considered a tree. The height of...

Be Quick & Clever & Lucky 396

PAT甲级 1021 Deepest Root 图的遍历

题目链接:PTA | 程序设计类实验辅助教学平台 题意:求树的最大深度 最后一行for (vector&amp;amp;amp;amp;amp;lt;int&amp;amp;amp;amp;amp;gt;::iterator it = nodes.begin(); it!=nodes.end(); ++ it) cout &amp;amp;amp;amp;amp;lt;&amp;amp;amp;amp;amp;lt; *it &amp;amp;amp;amp;amp

zhaohaibo的博客 526

【PAT甲级】1021 Deepest Root (25分)

题目链接:1021Deepest Root(25分) #include <iostream> #include <vector> using namespace std; int DFS(int s, vector<int> &vis, vector<int> adj[], int k){ int maxDepth = 0; vis[s] = 1; for(int i = 0; i < adj[s].size...

五百零一 129

【PAT(甲级)】1021 Deepest Root

【PAT(甲级)】1021 Deepest Root 思路分析,易错点分析

weixin_55202895的博客 406
上一篇: PAT甲级1020 Tree Traversals
下一篇: PAT甲级 1024 Palindromic Number
zerohawk
博客等级 码龄8年 3粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值