爆刷PAT(甲级)——之【1004】 Counting Leaves (30)——树上简单dfs搜索

【PAT甲级】1004 Counting Leaves (30 分) JS 最近疫情在家办公,足不出户,做做PAT的题。奉上【PAT甲级】JS解题分析————第三篇。(1003Emergency暂时还不会,先跳过,哈哈) 阅读详情

艰难的英语单词:

pedigree     英 [ˈpedɪgri:]      血统; 家谱
sake         英 [seɪk]    缘故, 目的
hence         英 [hens]    因此,所以

题意: 给一棵树,然后输出这颗树每一层的叶子节点数。

难点:N小于100。而且节点标记从1开始,根节点就是1,所以说难点就是如何统计出每一层的叶子数即可。

简单的想了一下,用DFS好像不是很难,写了一下一遍AC。。。有点简单啊。。。

每个节点,往儿子搜,每次搜索的时候,如果没儿子,就加1统计一下就好了,最后一期输出即可。

终于怒切一道水题,真爽。

 

PS. AC以后打算学习一下别的道友AC的方法是什么,看了一下好像还是dfs简单,算了不看了。。。hhh

Code:基础DFS

#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
#define inf 105
#define INF 0x3f3f3f3f
#define loop(x,y,z) for(x=y;x<z;x++)

int n,m;
vector<int>node[inf];//各节点孩子
int leaves[inf];//各层叶子数
int depth;//树的深度

void Input()
{
    int i,v,len,u;
    scanf("%d%d",&n,&m);
    memset(leaves,0,sizeof leaves);//初始化
    depth=0;
    loop(i,0,n)node[i].clear();

    loop(i,0,m)//建树
    {
        scanf("%d%d",&v,&len);
        while(len--)
        {
            scanf("%d",&u);
            node[v].push_back(u);
        }
    }
}

int dfs(int v,int step)//当前节点,当前深度
{
    int len=node[v].size();
    if(!len)leaves[step]++;
    int i;
    loop(i,0,len)
    {
        int u=node[v][i];
        dfs(u,step+1);
    }
    depth=max(depth,step+1);//节点是叶子,层数也存在,所以+1
}

void Output()
{
    int i;
    loop(i,1,depth-1)printf("%d ",leaves[i]);
    printf("%d\n",leaves[i]);
}

int main()
{
    Input();
    dfs(1,1);
    Output();
    return 0;
}

 

Burp靶场实战:JWT签名绕过漏洞分析与利用 本文通过Burp Suite靶场实战,深入剖析了JWT签名绕过漏洞的多种攻击手法,包括签名未验证、alg:none攻击、弱密钥爆破、JWK/JKU头注入、KID路径遍历及算法混淆攻击。文章详细演示了利用过程,并提供了关键的防御指南,帮助开发和安全人员加固JWT实现,确保认证安全。 阅读详情

相关推荐

学术规范与论文写作(雨课堂)研究生 全部答案

1:如何造就优秀的学术论文 论文语法判断题 :全部是错的 2:如何撰写学术论文 3: SCI论文写作经验分享 4:论文写作与投稿技巧 5:学术伦理道德 答案仅供参考,研究生生活不易,大家如果有时间的话,还是可以学习学习的,毕竟老师讲的不错。加油,希望读研的每一个人都能顺利毕业! ...

Always-Learning 13万+

1004 Counting Leaves (30分)

题目链接1004 Counting Leaves 题意:给出树的总结点个数,和非叶子结点个数,然后给出非叶子结点的孩子结点,求每层的叶子结点数。 使用邻接表储存输入的数据。 然后bfs从根结点1遍历,level++.返回最大的层数。 坑点: 数据结点值不是1-n是随机的,根节点是1。 输入的数据不一定是先输入父节点。------第一次没用BFS直接输入数据的时候处理的,没有想到这种情况,搜了几个...

qq_37866436的博客 204

ANSYS/ANSYS Workbench生成mnf文件导入到Adams相关问题浅显解释

ANSYS/ANSYS Workbench生成mnf文件导入到Adams相关问题浅显解释。

weixin_45551870的博客 6982

1004 Counting Leave(甲级)

1004 Counting Leaves (30分) A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Specification: Each input file contains one test case. Each case starts with a line containing 0<N&

Eighteen 217

Aloudata 荣登“数智技术系列榜单”和“数据智能服务商 TOP30”

持续助力各行业数智化先进企业突破数据管理技术瓶颈,以更加敏捷、精准和可靠的数据交付驱动企业业务创新与经营提效

Aloudata的博客 666

R语言绘图进阶:五大工具高效组合多图(cowplot、patchwork、layout、par、gridExtra)

本文详细介绍了R语言中五大高效组合多图的工具:cowplot、patchwork、layout、par和gridExtra。针对不同场景提供了实用指南,帮助数据分析师解决图表排版难题,提升报告专业度。特别推荐cowplot用于ggplot2图形组合,patchwork提供最简洁语法,layout则支持完全自定义布局。

weixin_42544663的博客 288

7-4 Counting Leaves(

7-4树叶 A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. 家庭等级通常由谱系树表示。您的工作是计算没有孩子的家庭成员。 Input Specification: The input consists of...

qq_43791139的博客 313

告别OLE!Delphi操作Excel的3种轻量级方案横向评测(FlexCel/XLSReadWriteII/LibXL)

本文深入评测了Delphi操作Excel的三种轻量级方案:FlexCel、XLSReadWriteII和LibXL。通过技术架构、API设计、性能测试和实战案例的全面对比,帮助开发者选择最适合的工具,提升Excel文件处理效率,告别传统OLE方案的依赖和性能问题。

onion的博客 929

PAT甲级1004,1020解题报告

  1004 Counting Leaves (30 point(s)) A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Specification: Each input file c...

TateBrwonJava的博客 705

SAP:SAP的内存管理详解

SAP 的内存管理是一个复杂的多层机制,涉及应用服务器、数据库和操作系统的协同工作。通过合理配置和优化,可以显著提高 SAP 系统的性能和稳定性。

baidu_35680696的博客 1212

IsaacSim环境配置之配置本地资产包

摘要:Isaac Sim官方资产文件默认从美国服务器下载速度慢,影响开发体验。建议下载本地资产包并配置本地资源源。具体步骤包括:1) 下载资产包并解压;2) 修改Isaac Sim安装路径下的配置文件,添加本地资产路径配置,包括机器人、人物、环境等各类资源目录。配置完成后可显著提升资产加载速度,改善开发效率。文中提供了详细的配置文件修改示例和截图说明。

拥抱具身智能,昇腾Ascend C 328

PAT 甲级1004 Counting Leaves

PAT 甲级1004 Counting Leaves N为树中节点数量0 < N < 100,M为叶子节点数量。 ID是代表非叶子节点的两位数(有child),K是其儿子节点数量, 后跟k个儿子节点ID 要按层输出每层叶子节点的数量 就是对树进行搜索 深度优先搜索DFS 按深度优先对树进行搜索,每当遇到一个节点,如果该节点是叶子节点,则将该层的叶子节点数量++,同时比较该层深度与已知最大深度,如果该层深度更深,更新最大深度。 如果该节点不是叶子节点,则对该节点的每个叶子节点,递归调用本函数。

weixin_43480561的博客 518

化工模拟与优化软件:Aspen HYSYS二次开发_(15).工业应用与项目管理

项目背景、目标和主要流程。

kkchenjj的博客 1130

PAT练习题(甲级) 1004 Counting Leaves (30分)(Java实现)

PAT练习题 1004 Counting Leaves(Java)题目题意解题思路代码实现 题目 A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Specification: Each inpu...

CoderHqf的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

PAT甲级 - 1004 Counting Leaves (30 分)

题目链接:(PAT甲级)1004 Counting Leaves (30 分) A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Specification: Each input file...

272

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

[PAT 甲级]1004 Counting Leaves (30 分) 【dfs 树的遍历】

1004 Counting Leaves (30 分) 原题链接 A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Specification: Each input file contains ...

cp0328的博客 3367

「PAT甲级真题解析」Advanced Level 1004 Counting Leaves

1. 题设要求按照从根结点开始自顶向下输出树结构每一层的叶子结点数目。 2. 这意味着我们需要设置计数器, 然后遍历树的每一个结点, 然后检查该结点是否是叶子结点, 如果是叶子结点, 则将计数器中该层次叶子结点个数+1. 3. 遍历树结构叶子结点可以用深度优先dfs搜索和广度优先搜索bfs.

过美好生活,做高效程序员 4994

PAT 甲级 1004(Counting Leaves)

PAT 甲级 1004题目要求翻译代码思路 题目要求 A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Specification: Each input file contains one te...

qq_42865772的博客 388

PAT 1004 Counting Leaves

题目描述 英文 中文大意 通过输入的树找出 每一层有多少个叶子节点 样例输出 思路分析 用 dfs 深度优先遍历, 大致思路是寻找叶子节点, 如果找到在 record[] 数组对应的深度depth 加一 理解一下各个输入 N: 节点个数 M: 非叶子节点个数 ID: 非叶子节点标识 K: 此节点的儿子节点数 ID[i]: 此节点的儿子节点 首先接受 N、M, 叶子节点不用统计,所以根据M 获取节点 把每个节点的子节点都存入 vector[index] 通过判断vector[index].size()

唐五二七博客 187

PAT 甲级-1004 Counting Leaves

先采用vector数组来存储非叶子结点的孩子结点,采用dfs的方式进行遍历,遍历过程中更新最大层次数和每层的叶子结点个数。给你一个树,含有N个结点,其中M个结点是非叶子结点,接下来给你这M个结点的孩子结点。要求你输出每层的叶子结点。

qq_45818574的博客 1523

PAT甲级1004 Counting Leaves (30分)

PAT甲级1004 Counting Leaves (30分) 题目: 思路:dfs,见注释 AC代码附上: #include <iostream> #include <cstdio> #include <vector> #include <algorithm> using namespace std; const int maxn=110; v...

weixin_43795683的博客 158

PAT甲级-1004 Counting Leaves (30分)

点击链接PAT甲级-AC全解汇总 题目: A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Specification: Each input file contains one test cas...

卷子的博客 659

PAT 甲级 1004 Counting Leaves (DFS)(c++版)(附代码注释)

1004 Counting Leaves (30 分) 原文链接:http://kakazai.cn/index.php/Kaka/Pat/query/id/94 文章目录题目题意分析知识点与坑点一、DFS算法思路代码-c++版代码-python版 题目 题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/99480552...

kakazai.cn 377

柳神PAT甲级真题目录

PAT甲级真题目录(按题型整理) 转自https://www.liuchuo.net/archives/2502?tdsourcetag=s_pcqq_aiomsg 最短路径 1003. Emergency (25)-PAT甲级真题(Dijkstra算法) 1018. Public Bike Management (30)-PAT甲级真题(Dijkstra + DFS) 1030. Travel ...

学习博客,一路同行 4297

PAT甲级 1004 - dfs 和 bfs

PAT甲级 1004题目 Counting Leaves解析源码代码代码 - bfs代码 - dfs 题目 Counting Leaves A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Sp...

qq_37208650的博客 339

PAT-A1004 Counting Leaves 题目内容及题解

A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Specification: Each input file contains one test case. Each case starts...

BourbonWhiskey 的博客 830
上一篇: 爆刷PAT(甲级)——之【1003】 Emergency (25)——最短路简单变形
下一篇: 爆刷PAT(甲级)——之【1005】 Spell It Right (20)——英文加法,C++
仰天倀笑
博客等级 码龄10年 313粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值