PTA 小字辈(树)

news2024/11/17 9:39:19

题目

本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。

输入格式:

输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号,其中第 i 个编号对应第 i 位成员的父/母。家谱中辈分最高的老祖宗对应的父/母编号为 -1。一行中的数字间以空格分隔。

输出格式:

首先输出最小的辈分(老祖宗的辈分为 1,以下逐级递增)。然后在第二行按递增顺序输出辈分最小的成员的编号。编号间以一个空格分隔,行首尾不得有多余空格。

  • 输入样例:
9
2 6 5 5 -1 5 6 4 7
  • 输出样例:
4
1 9

题解

#include <iostream>
#include <vector>
#include <set>
using namespace std;

int n;
int root;
int maxlevel = 1;
vector<vector<int>> list;
set<int> s;

void dfs(int node, int level) {
    if (level > maxlevel) {
        maxlevel = level;
        s.clear();
        s.insert(node);
    } else if (level == maxlevel) {
        s.insert(node);
    }

    for (int i = 0; i < list[node].size(); i++) {
        dfs(list[node][i], level + 1);
    }
}

int main() {
    cin >> n;
    list.resize(n + 1);

    for (int i = 1; i <= n; i++) {
        int temp;
        cin >> temp;
        if (temp != -1)
            list[temp].push_back(i);
        else
            root = i;
    }

    dfs(root, 1);

    cout << maxlevel << endl;
    int len = s.size();
    int j = 1;
    for (int i : s) {
        if (j == len) {
            cout << i << endl;
        } else {
            cout << i << " ";
        }
        j++;
    }

    return 0;
}

import java.util.*;

public class youngster {
    static int n;
    static int root;
    static int max=1;
    static List<List<Integer>> list=new ArrayList<>();
    static Set<Integer> set=new HashSet<>();
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        n=scanner.nextInt();
        for(int i=0;i<=n;i++){
            list.add(new ArrayList<Integer>());
        }
        for(int i=1;i<=n;i++){
            int temp=scanner.nextInt();
            if(temp!=-1)
                list.get(temp).add(i);
            else
                root=i;
        }

        dfs(root,1);

        System.out.println(max);
        int len=set.size();
        int j=1;
        for(Integer i:set){
            if(j==len){
                System.out.println(i);
            }else
                System.out.print(i+" ");

            j++;
        }

    }

    public static void dfs(int node,int leval){
        if(leval>max){
            max=leval;
            set.clear();
            set.add(node);
        }else if(leval == max){
            set.add(node);
        }

        List<Integer> l=list.get(node);
        for(int i=0;i<l.size();i++){
            dfs(l.get(i),leval+1);
        }
    }

}

思路

这道题没有什么难点,掌握树结构,然后通过深搜或者广搜记录层数搜索即可。
问题在于pta平台也太针对Java了,同样的代码,java大部分超时甚至答案错误,改成c++之后直接通过!!!!!!

附上java惨状
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1110346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

minikube创建一个pod并暴露端口(使用docker驱动安装)

因为minikube使用service暴露端口是使用nodeIP:nodePort 而不是 localhost:nodePort 公开访问。我们只能使用kubectl的端口转发功能或者使用iptables的转发功能来实现外网服务暴露。 我这里使用shiro来举例 apiVersion: apps/v1 kind: Deployment metadata:name: shiro550 spe…

财务对账-财务收发存-业务收发存

务对账是指将公司的账目与银行等第三方提供的相关账单进行核对比对&#xff0c;以确定公司记录的交易是否与银行或其他第三方的记录一致。对账的具体步骤通常包括以下几个方面&#xff1a; 收集资料&#xff1a;首先需要收集公司的财务记录&#xff0c;包括公司银行账户的流水…

学员分享| 一个普通学员的HCIE-DATACOM备考之路!

大家好&#xff0c;我是G-LAB IT实验室的周同学&#xff0c;在这篇文章中&#xff0c;我将分享我的备考HCIE数通方向的心路历程。我的备考之路&#x1f447; ——备考理论—— 我从一年前开始了HCIE数通方向的备考。一开始&#xff0c;我并没有完全了解这个认证的难度和复杂性…

免费Scrum管理工具-Leangoo领歌

Leangoo领歌是一款永久免费的专业的敏捷开发管理工具&#xff0c;提供端到端敏捷研发管理解决方案&#xff0c;涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 
 Leangoo领歌上手快、实施成本低&#xff0c;可帮助企业快速落地敏捷&#xff0c;提质增效、缩短周期、加速…

vue 插槽-默认插槽

vue 插槽-默认插槽 **创建 工程&#xff1a; H:\java_work\java_springboot\vue_study ctrl按住不放 右键 悬着 powershell H:\java_work\java_springboot\js_study\Vue2_3入门到实战-配套资料\01-随堂代码素材\day05\准备代码\07-插槽-默认插槽 vue --version vue create…

CMMI软件能力成熟度认证指南来了

CMMI能力成熟度模型集成&#xff0c;是一种评估或认证体系。其核心理念是&#xff1a;过程决定质量&#xff0c;这六个字能够让大家对CMMI有了一个大概的了解。是的&#xff0c;重点是过程&#xff0c;CMMI评估的核心内容也是过程。主要是CMMI研究院主任评估员根据CMMI模型检查…

torch版本对应的torch_geometric与torch-sprse/cluster/scatter库的正确安装

torch_geometric官网&#xff1a; Installation — pytorch_geometric documentation 使用上述标红命令即可快速安装需要的包&#xff08;确定自己环境中安装的pytorch版本以及cuda版本&#xff0c;使用对应的命令即可&#xff09; 如安装的pytorch为1.60&#xff0c;cuda为1…

10款远程办公软件,助你事半功倍,晋升快如闪电

选择一个易于使用和方便的远程软件&#xff0c;可以提高团队的整体效率&#xff0c;减少加班&#xff0c;使整个团队更受益。互联网行业从产品经理、UI/从UX设计师到技术开发和测试人员&#xff0c;每一个环节都需要密切沟通和跟踪&#xff0c;在远程沟通中及时发现问题&#x…

广东广西大量工地建筑支模

近年来&#xff0c;广东广西地区的建筑工地发展迅猛&#xff0c;为满足日益增长的建筑需求&#xff0c;大量工地都需要使用支模模板。支模模板是建筑施工中不可或缺的重要工具&#xff0c;用于搭建楼层、梁柱等结构的模板系统。在广东广西&#xff0c;有许多专业的支模模板厂家…

万物归宗系列01-html基本语法

万物归宗系列&#xff0c;即什么都懂一点系列。 HTML是标签语言&#xff0c;一般成双成对。 Hypertext Markup Language&#xff1a;超⽂本标记语⾔。是⽤来制作⽹页的⼀种标记语⾔。 1 基本框架 <!DOCTYPE html> <html lang"en"> <head><meta…

DAC8563数模转换模块的使用介绍

前言 DAC8563为16位低功耗、电压输出、双通道的数模转换器&#xff0c;其包括一个2.5V4ppm/C 内部基准&#xff0c;从而提供了一个 2.5V 或 5V 的满量程输出电压范围。 此内部基准有一精度&#xff0c;并且能够在 VREFIN/VREFOUT引脚上提供或吸收高个 5mV 的初始达 20mA 的电流…

【75. 颜色分类】

目录 一、题目描述二、算法思想三、代码实现 一、题目描述 二、算法思想 三、代码实现 class Solution { public:void sortColors(vector<int>& nums) {int nnums.size();for(int left-1,rightn,i0;i<right;){if(nums[i]0)swap(nums[i],nums[left]);else if(nums…

7+非肿瘤+WGCNA+分型+实验,筛选关键基因进一步分型以及表达验证

今天给同学们分享一篇非肿瘤WGCNA分型实验的生信文章“Identification of molecular subtypes and immune infiltration in endometriosis: a novel bioinformatics analysis and In vitro validation”&#xff0c;这篇文章于2023年8月18日发表在Front Immunol期刊上&#xff…

Net6集成Nacos实现服务注册

Net6集成Nacos实现服务注册 一、服务注册1.创建WebAPI项目2.安装Nuget包3.注册NacosNacos配置文件&#xff08;放在Appsetting.json或其他文件中&#xff09;4.创建Api控制器5.运行效果 二、配置中心1.设置配置2.读取配置3.展示效果4.设置多个配置项 Nacos安装 nacos-sdk-cshar…

Java自定义线程池

一、线程池的概念和作用 线程池是一种用于管理和重用线程的机制。它允许你创建一个线程池&#xff0c;然后将任务提交给这个线程池&#xff0c;线程池会自动分配线程来执行这些任务。 线程池的作用是优化线程的管理和资源利用&#xff0c;以减少线程创建和销毁的开销&#xff0…

竞赛选题 深度学习交通车辆流量分析 - 目标检测与跟踪 - python opencv

文章目录 0 前言1 课题背景2 实现效果3 DeepSORT车辆跟踪3.1 Deep SORT多目标跟踪算法3.2 算法流程 4 YOLOV5算法4.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; *…

保姆级教程,教你AI数字人应该怎么制作?!

随着人工智能的发展&#xff0c;利用数字人制作短视频已经成为当下火热的项目&#xff0c;因为这种方式不需要真人出镜&#xff0c;避免了个人不上镜或者不喜上镜而不能做短视频的缺点&#xff0c;用数字人代替真人&#xff0c;不仅内容里人物有了&#xff0c;而且这种形式还非…

智能井盖是什么?万宾科技智能井盖传感器有什么特点

智能井盖是一种基于物联网和人工智能技术的新型城市设施。它不仅具备传统井盖的功能&#xff0c;还能通过数字化、自动化的方式实现远程监控和智能管理&#xff0c;提升城市运行效率和服务水平。 WITBEE万宾智能井盖传感器EN100-C2是一款井盖异动监测的传感终端。对窨井盖状态(…

shein面试:nacos无入侵配置,做过吗,怎么做?

说在前面 在40岁老架构师 尼恩的读者社区(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如阿里、滴滴、极兔、有赞、shein 希音、百度、网易的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 无入侵配置&#xff0c;做过吗&#xff0c;怎么做的&#xff1f;Na…

剪映怎么一键去水印?三分钟教会你

剪映怎么一键去水印&#xff1f;无论是使用剪映提供的方法还是专业的去水印软件&#xff0c;都能够帮助用户轻松去除视频中的水印&#xff0c;提高视频的质量和观赏性&#xff0c;以根据自己的需求和场景选择合适的方法进行操作&#xff0c;今天就教大家如何使用剪映一键去水印…