题目描述
假设有向图G采用邻接矩阵存储,计算图G中出度为k的顶点数量,并输出顶点的编号。
输入
第一行第一个整数n表示顶点的个数(顶点编号为0到n-1),第二个数表示出度k,接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,1表示不邻接。
输出
图G中出度为k顶点数量以及顶点编号。第一行表示出度为k顶点数量,第二行表示顶点的编号。
样例输入
5 2
0 1 0 1 0
0 0 1 1 0
0 0 0 0 0
0 0 0 0 0
1 0 0 1 0
样例输出
3
014
#include<stdio.h>
#define MaxSize 1000
int G[MaxSize]={0};//用来存每个结点的度
int main()
{
int n,number,k,sum=0;
scanf("%d %d",&n,&k);
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
scanf("%d",&number);
if(number==1) G[i]++;//如果为1,则结点度加1
}
if(G[i]==k) sum++;//记录出度为k的结点数量
}
printf("%d\n",sum);
for(int i=0;i<n;i++)
{
if(k==G[i])//若该结点满足条件,则输出结点编号
{
printf("%d",i);
}
}
}