题目描述

众人皆知,在编程领域中,C++是一门非常重要的语言,不仅仅因为其强大的功能,还因为它是很多其他面向对象语言的祖先和典范。不过这世上几乎没什么东西是完美的,C++也不例外,多继承结构在带来强大功能的同时也给软件设计和维护带来了很多困难。为此,在java语言中,只允许单继承结构,并采用接口来模拟多继承。KK最近获得了一份java编写的迷你游戏的源代码,他对这份代码非常感兴趣。这份java代码是由n个类组成的(本题不考虑接口),现在,他想要知道这份代码中有多少个类没有直接基类。n个类分别用数字1..n表示。

输入

输入数据包含多组,每组数据格式如下。

第一行包含两个整数n,m,表示该份代码中的n个类和m个单继承关系。
后面m行,每行两个整数a b,表示a是b的直接基类。

输出

对于每组输入,输出该组数据中有多少个类没有直接基类。每组输出占一行。

示例输入

2 1
1 2
2 0

示例输出

1
2

#include <iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
struct PTNode
{
int data;//类的标号;
int parent;//当前元素的双亲结点序号(类的直接基类)
}p[101];
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m))
{
int count=0;//统计有多少类没有直接基类;
for(int i=1;i<=n;i++)
{
p[i].parent=0;//初始化
p[i].data=i;
}
while(m--)
{
int x,y;
scanf("%d%d",&x,&y);
p[y].parent=x;
}
for(int i=1;i<=n;i++)
if(p[i].parent==0)//若父结点为空, 即为根节点
count++;
printf("%d\n",count);
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int mp[110][110];//表示谁是谁的基类
int main()
{
int n, m, s;
int a, b;
while(~scanf("%d %d", &n, &m))
{
if(m == 0)//没有直接基类;
printf("%d\n",n);
else
{
s=0;//记录有直接基类的类;
memset(mp, 0, sizeof(mp));//初始化;
while(m--)
{
scanf("%d %d", &a, &b);
mp[a][b] = 1;//表示a是b的直接基类;
}
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
{
if(i != j&&mp[j][i] == 1)
{
s++;
break;
}
}
}
printf("%d\n", n-s);
}
}
return 0;
}
#include <algorithm>
#include <stdio.h>
#include <string.h>//memset函数存在于此头文件中
using namespace std;
int main()
{
bool st[500];//标记含有单继承关系的类(逻辑型)
int n,m,a,b;
while(~scanf("%d %d",&n,&m))
{
int cnt=n;
memset(st,false,sizeof(st));//初始化;
while(m--)
{
scanf("%d %d",&a,&b);
if(!st[b])//b有直接基类;
{
st[b]=true;
cnt--;
}
}
printf("%d\n",cnt);
}
return 0;
}

树结构练习——判断给定森林中有多少棵树相关推荐

  1. sdut 2129树结构练习——判断给定森林中有多少棵树(并查集)

    树结构练习--判断给定森林中有多少棵树 Time Limit: 1000MS Memory limit: 65536K 题目描述 众人皆知,在编程领域中,C++是一门非常重要的语言,不仅仅因为其强大的 ...

  2. 【树】判断给定森林中有多少棵树(简单做法)

    树结构练习--判断给定森林中有多少棵树 Time Limit: 1000MS Memory limit: 65536K 题目描述 众人皆知,在编程领域中,C++是一门非常重要的语言,不仅仅因为其强大的 ...

  3. 判断给定森林中有多少棵树特别版

    题目描述 众人皆知,在编程领域中,C++是一门非常重要的语言,不仅仅因为其强大的功能,还因为它是很多其他面向对象语言的祖先和典范.不过这世上几乎没什么东 西是完美的,C++也不例外,多继承结构在带来强 ...

  4. 图11——判断图中是否为一棵树

    编写算法,判断一个无向图是否是一颗树. [分析] 一个无向图G是一棵树的条件为:G必须是无回路的连通图或n-1条边的连通图,这里我们采用后者作为判断条件.例如下图所示: 上面的无向图就是一棵树,它有6 ...

  5. 机器学习的几种方法(knn,逻辑回归,SVM,决策树,随机森林,极限随机树,集成学习,Adaboost,GBDT)

     一.判别模式与生成模型基础知识 举例:要确定一个瓜是好瓜还是坏瓜,用判别模型的方法是从历史数据中学习到模型,然后通过提取这个瓜的特征来预测出这只瓜是好瓜的概率,是坏瓜的概率. 举例:利用生成模型是根 ...

  6. c语言孩子兄弟法存储一棵树,数据结构(C语言版)---树

    1.树:n个结点的有限集,n=0时为空树. 1)特点: (1)有且仅有一个特定的称为根的结点. (2)有若干个互不相交的子树,这些子树本身也是一棵树. (3)树的根结点没有前驱结点,除根结点外的所有结 ...

  7. 树和森林的遍历 (树的建立和输出)

    树和森林的遍历 对于树的遍历从其结构出发有三种搜索路径:先根(次序)遍历树,先访问根结点,然后依次先根遍历根的各棵子树:后根(次序)遍历树,先依次后根遍历根的各棵子树,然后访问根结点:按层(次序)遍历 ...

  8. leetcode 110 --- 判断给定的二叉树是否是平衡二叉树

    1 题目 判断给定的二叉树是否是平衡二叉树 平衡二叉树的性质为: 要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过 1. 一颗树的高度指的是树的根节点到所有节点的距离中的最大值. 2 解 ...

  9. 把树分成森林 matlab,20170106RF_Matlab 随机森林指的是利用多棵树对样本进行训练并预测的一种分类器,包括两个方面:数据的随 269万源代码下载- www.pudn.com...

    文件名称: 20170106RF_Matlab下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 441 KB 上传时间: 2017-01-06 下载次数: 0 ...

最新文章

  1. GridView 始终显示 Pager 分页行的一种方法
  2. 大数据建模、分析、挖掘技术应用研修班的通知
  3. 马云卸任阿里巴巴集团董事:传承计划执行完毕,换个江湖见!
  4. Win10微软帐户切换不回Administrator本地帐户的解决方法【亲测】
  5. 如何让地面不起灰_水泥地面起灰怎么办?
  6. UpdatePanelAnimation
  7. 为Android Studio 项目手动下载gradle
  8. SCJP 认证考试指南
  9. 非常好用的模糊pid温度控制算法_PID参数调试“口诀”,总结的真好!
  10. 利用gitlab pages和hexo搭建一个个人博客
  11. mysql 查看校对集,MySQL校对集
  12. 软件测试与质量保障之间的关系
  13. 最新交易猫 闲鱼源码 带后台管理+个人码收款
  14. 熔断的产生及解决方案
  15. 文本分类之降维技术之特征抽取之SVD矩阵的分解的原理的介绍
  16. iOS Swift RxSwift 的使用(二)
  17. 来吧,展示。互联网术语
  18. 少年派 —— 之 读书
  19. 教育培训学校的网络推广方案
  20. 计算机的应用采用进位制,为什么计算机采用二进位制运算?

热门文章

  1. python如何为饼图添加标题_python – Matplotlib子图标题,图标题格式
  2. JdbcTemplate(操作数据库-查询返回对象、查询返回集合)
  3. 嵌套饼图_你真的了解matplotlib吗?---环形图
  4. 国家计算机科学进展,计算机科学技术学院部署科研工作推进及国家自然科学基金申报工作...
  5. java什么是类和对象,Java类和对象的概念
  6. gentos 执行sh文件_linux定时自动清理日志文件
  7. php 随机颜色,php生成随机颜色的代码实例
  8. Java与C++有何区别呢?请看以下几点就明白了……
  9. 计算机三级数据库上机怎么考,最新计算机三级数据库上机考试试题
  10. mysql5.7.24 安装步骤_MySQL5.7.24解压版安装步骤