热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PAT甲级1004:统计叶节点数量

参考:https:blog.csdn.netqq278672818articledetails54915636首先贴上我一开始的部分正确代码:1#inc

参考:https://blog.csdn.net/qq278672818/article/details/54915636

首先贴上我一开始的部分正确代码:

1 #include
2 using namespace std;
3 const int N=1e4+5;
4 struct node
5 {
6 int level,child;//level为该节点层数,child为该节点孩子数
7 node()
8 {
9 level=10000;
10 child=0;
11 }
12 }no[N];
13 int n,m;
14 int ans[N];//ans【i】为第i层叶子节点数
15 int cmp(struct node x,struct node y)
16 {
17 return x.level<y.level;
18 }
19 int main()
20 {
21 cin>>n;
22 if (n&#61;&#61;0)
23 return 0;
24 cin>>m;
25 no[1].level&#61;1;
26 int k,id,child,maxlevel&#61;1;//maxlevel为最大层数
27 for (int i&#61;0;i)
28 {
29 cin>>id>>k;
30 no[id].child&#61;k;
31 for (int i&#61;0;i)
32 {
33 cin>>child;
34 no[child].level&#61;no[id].level&#43;1;
35 maxlevel&#61;max(maxlevel,no[child].level);
36 }
37 }
38 sort(no&#43;1,no&#43;1&#43;n,cmp);//按层数排序
39 memset(ans,0,sizeof(ans));
40 for (int i&#61;1;i<&#61;n;i&#43;&#43;)
41 {
42 if (no[i].child&#61;&#61;0)
43 {
44 ans[no[i].level ]&#43;&#43;;
45 }
46 }
47 cout<1];
48 for (int i&#61;2;i<&#61;maxlevel;i&#43;&#43;)
49 cout<<" "<<ans[i];
50 cout<<endl;
51
52 return 0;
53 }

经参考了上边的参考链接后发现&#xff1a;若有测试点是无序的&#xff0c;则该解法错误&#xff0c;因为节点的层数设置将不正确。

再贴上AC代码&#xff1a;

1 #include
2 using namespace std;
3 vector<int> ve[110];
4 int n,m,maxlevel&#61;0;//maxleve记录树的最大层数
5 int ans[110];//ans[i]保存第i层的叶子节点数
6 void dfs(int level,int id)//level为当前层数&#xff0c;id为当前节点编号
7 {
8 if (ve[id].size()&#61;&#61;0)//找到叶子节点
9 {
10 maxlevel&#61;max(maxlevel,level);
11 ans[level]&#43;&#43;;
12 return;
13 }
14 for (int i&#61;0;i//递归遍历孩子节点
15 {
16 dfs(level&#43;1,ve[id][i]);
17 }
18 }
19 int main()
20 {
21 cin>>n;
22 if (n&#61;&#61;0)
23 return 0;
24 cin>>m;
25 int id,k,child;
26 for (int i&#61;0;i)
27 {
28 cin>>id>>k;
29 for (int j&#61;0;j)
30 {
31 cin>>child;
32 ve[id].push_back(child);
33 }
34 }
35 memset(ans,0,sizeof(ans));
36 dfs(0,1);
37 cout<0];
38 for (int i&#61;1;i<&#61;maxlevel;i&#43;&#43;)
39 {
40 cout<<" "<<ans[i];
41 }
42 cout<<endl;
43
44 return 0;
45 }

 

转:https://www.cnblogs.com/hemeiwolong/p/10693167.html



推荐阅读
  • 火星商店问题:线段树分治与持久化Trie树的应用
    本题涉及编号为1至n的火星商店,每个商店有一个永久商品价值v。操作包括每天在指定商店增加一个新商品,以及查询某段时间内某些商店中所有商品(含永久商品)与给定密码值的最大异或结果。通过线段树分治和持久化Trie树来高效解决此问题。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文探讨了如何在模运算下高效计算组合数C(n, m),并详细介绍了乘法逆元的应用。通过扩展欧几里得算法求解乘法逆元,从而实现除法取余的计算。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • Splay Tree 区间操作优化
    本文详细介绍了使用Splay Tree进行区间操作的实现方法,包括插入、删除、修改、翻转和求和等操作。通过这些操作,可以高效地处理动态序列问题,并且代码实现具有一定的挑战性,有助于编程能力的提升。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • This document outlines the recommended naming conventions for HTML attributes in Fast Components, focusing on readability and consistency with existing standards. ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
  • 本题探讨了一种字符串变换方法,旨在判断两个给定的字符串是否可以通过特定的字母替换和位置交换操作相互转换。核心在于找到这些变换中的不变量,从而确定转换的可能性。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文探讨了 C++ 中普通数组和标准库类型 vector 的初始化方法。普通数组具有固定长度,而 vector 是一种可扩展的容器,允许动态调整大小。文章详细介绍了不同初始化方式及其应用场景,并提供了代码示例以加深理解。 ... [详细]
  • 本实验主要探讨了二叉排序树(BST)的基本操作,包括创建、查找和删除节点。通过具体实例和代码实现,详细介绍了如何使用递归和非递归方法进行关键字查找,并展示了删除特定节点后的树结构变化。 ... [详细]
  • 本文详细介绍了C语言中链表的两种动态创建方法——头插法和尾插法,包括具体的实现代码和运行示例。通过这些内容,读者可以更好地理解和掌握链表的基本操作。 ... [详细]
author-avatar
手机用户2502885897
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有