题目描述

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

输入

首先输入一个整数T,表示数据的组数。每组数据格式如下。

第一行包含两个整数n,m,表示该份代码中的n个类和m个单继承关系(1<=m<n<=10^5)

输出

对于每组输入。输出询问类的子类的数量和编号。

示例输入

1
10 9
2 1
3 2
4 3
5 3
6 3
7 3
8 3
9 3
10 5
10
7
6
3
7
1
2
8
1
2
5

示例输出

0
0
6
4 5 6 7 8 9
0
1
2
1
3
0
1
2
1
3
1
10

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define max 100000
typedef struct node
{int data;node *next;
}node,*Bnode;
void Insert(Bnode &head,int x)//有序的邻接表插入函数...头指针的数据域代表"后面"共有多少个元素对这些元素进行数组存储;
{Bnode tail,p,q;//p是q的前驱节点 tail是要插入的节点tail=new node;tail->data=x;tail->next=NULL;if(head==NULL){head=new node;head->next=tail;// tail->next=NULL;head->data=1;//元素个数为1;}else{head->data++;//链的数据个数++p=head;q=head->next;while(q){if(q->data>x){p->next=tail;tail->next=q;break;//从小到大排序 遇到大的就插入 然后一定要跳出while}p=p->next;q=q->next;}if(q==NULL) //没找到比x大的 所以把x放在最后{p->next=tail;//tail->next=NULL;}}
}
int main()
{int i,t,n,m,a,b;scanf("%d",&t);Bnode head[max],tail;while(t--){scanf("%d%d",&n,&m);for(i=1;i<=n;i++)head[i]=NULL;//初始化for(i=0;i<m;i++){scanf("%d%d",&a,&b);Insert(head[b],a);//将a的数据插入到b的节点中}int q;scanf("%d",&q);for(i=0;i<q;i++){int key;scanf("%d",&key);if(head[key]==NULL)//key值元素个数为空;printf("0\n");else{printf("%d\n",head[key]->data);//key值元素的总个数;tail=head[key]->next;while(tail){printf("%d",tail->data);if(tail->next!=NULL)printf(" ");tail=tail->next;}printf("\n");}}}
}

#include <iostream>
#include<cstring>
#include<vector>
#include<algorithm>
#include<cstdio>
using namespace std;
const int Maxn=100001;
vector<int>G[Maxn];
int t,m,n,q;
int main()
{
cin>>t;
while(t--)
{
cin>>n>>m;
int i;
for(i=1;i<=n;i++)
G[i].clear();
while(m--)
{
int u,v;
cin>>u>>v;
G[v].push_back(u);
}
cin>>q;
while(q--)
{
int num;
cin>>num;
int l=G[num].size();
if(l==0)
cout<<"0\n";
else
{
cout<<l<<endl;
sort(G[num].begin(),G[num].end());
vector<int>::iterator it;
for(it=G[num].begin();it<G[num].end();it++)
printf("%d ",*it);
cout<<endl;
//printf("%d\n",G[num][G[num].size()-1]);
}
}
}
//cout << "Hello world!" << endl;
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. 判断一棵树是否为完全二叉树的算法c语言_别再翻了,面试二叉树看这 11 个就够了!||CSDN博客精选...

    作者:一只不甘平凡的小鹿 数据结构与算法: 不知道你有没有这种困惑,虽然刷了很多算法题,当去面试的时候,面试官让你手写一个算法,可能你对此算法很熟悉,知道实现思路,但是总是不知道该在什么地方写,而且很 ...

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

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

最新文章

  1. 阿里最强热修复:Sophix 超高速集成与踩坑
  2. 人生的抉择-创业纪录片(二)-起步期
  3. 实例手册_独家数据 | 1820Fall 香港研究生商科类14个热门专业 1400+申请实例汇总...
  4. C# WPF MVVM项目实战(进阶②)
  5. 数据访问组件SqlHelper
  6. 对于程序员来说,“选择比努力更重要”是一句屁话
  7. 网络盘的计算机密码是什么,如何让win7映射网络驱动器记住密码
  8. 饮食结构思维导图模板
  9. MMD动作下载:世界第一公主殿下 World Is Mine Project DIVA
  10. kindle paperwhite2 root 密码修改方法
  11. 高数_证明_级数收敛的莱布尼茨判别法
  12. 2021CentOS7系统Gnome3桌面使用Fcitx
  13. 清理谷歌浏览器注册表_Win10系统下注册表chrome残留无法删除
  14. Hibernate框架的入门级学习运用
  15. [Vue warn]: Unknown custom element: <helptext> - did you register the component correctly? For recu
  16. Like What You Like: Knowledge Distill via Neuron Selectivity Transfer论文初读
  17. 能够实时显示CPU温度的软件
  18. 机场精细化管理_【青海机场公司召开“强化‘三基’固根本 精益管理促发展”主题交流会议】...
  19. LeetCode60. 第k个排列
  20. 最新UI界面漫画小程序源码,带后台支持流量主,24小时全自动更新!

热门文章

  1. python测试框架untest怎么循环执行_unittest如何在循环遍历一条用例时生成多个测试结果...
  2. c++ string类的常用方法_【常用类方法】Object
  3. python numpy逆_numpy.linalg.inv返回奇异矩阵的逆函数 - python
  4. cfiledialog 保存 扩展名_儿童美术:油画棒 插画一组超萌的大饼脸小孩 保存了跟小朋友一起画吧...
  5. linux 依赖关系解析失败,关于linux依赖关系出错的解决
  6. 【LeetCode笔记】155. 最小栈(Java、栈)
  7. ifamre 大小随页面变_SEO优化中如何让你的页面访问速度更快
  8. 计算机网络 --- 数据交换方式
  9. java打印已经被加载的类_使用URLClassLoader加载类,不会报错,但被加载类中的内容也没有打印出来...
  10. axure 输入框默认灰色字_Axure如何应对意外关闭