题目描述

众人皆知,在编程领域中,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. Python 打印不换行
  2. 首发:友盟2015年Q2、Q3中国移动互联网趋势报告
  3. mysql类 php100_PHP100中,制作自己的PHP.MYSQL类中:Access denied for user ''@'localhost' (using password: NO)...
  4. helloworld:一个完整的WCF案例
  5. GIL对多线程的影响
  6. 线程池 Future 带返回结果
  7. java破坏双亲委派_java的类加载机制-双亲委派,破坏双亲委派
  8. Java的static关键字使用
  9. SQL显示数据库恢复挂起解决
  10. github clone加速
  11. 地址解析:使用Google API将地址文本转换为经纬度
  12. 公众号开发精品教程(4)——生成带参数的二维码及合成海报
  13. 搭建Cacti监控(2)
  14. 徐荣谦《养好脾和肺 宝宝不积食不咳嗽长大个》【01】小儿常见病
  15. win 2003 SP2 (32位X86) 中文版 升级补丁包 下载地址 光盘整合集成方法
  16. H5调用摄像头拍照,录音及选择文件
  17. RecyclerView二级列表
  18. linux 系统日志 oom,Linux进程被杀掉(OOM killer),查看系统日志
  19. element自定义表单验证上传身份证正反面的实现
  20. 仿标点云半城云云客赞社区团购小程序源码

热门文章

  1. 软件工程课的分数系统,和打分方法
  2. IT 行业的创新 - 创新的迷思 (1-4)
  3. java php html,java和html的区别是什么
  4. python博客项目评论_Python 爬虫入门——小项目实战(自动私信博客园某篇博客下的评论人,随机发送一条笑话,完整代码在博文最后)...
  5. JAVA进阶教学之(产生随机数)
  6. 计算机主板开机接线端子,装机必看,机箱前置面板接线向导,不怕再接错线了...
  7. mysql中设置字符_MySQL中设置默认字符集的方法
  8. mt4 指标 涨跌幅 颜色k线_通达信精选指标——彩色K线指标
  9. 国嵌c语言深度,国嵌C语言3部全
  10. 电大计算机网考上机操作题,电大计算机上机考试模拟题及答案 (1)