树,笔记

ykj12 2022-08-19 10:07:10 1
#include<bits/stdc++.h>
using namespace std;
const int N=1100;
int a[N][N],hz[N];
int main(){
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++){
		int x,y;
		scanf("%d%d",&x,&y);
		a[x][y]=1;
	}
	//找树的根 
	for(int i=1;i<=n;i++){
		int cnt=0;
		for(int j=1;j<=n;j++){
			if(a[i][j]==1) cnt++;
		}
		if(cnt=0){
			cout<<i<<endl;
			break;
		}
	}
	//求树的度 
	int maxx=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			hz[i]+=a[i][j];
		}
		maxx=max(maxx,hz[i]);
	}
	for(int i=1;i<=n;i++){
		if(hz[i]==maxx){
			cout<<i<<endl;
			for(int j=1;j<=n;j++){
				if(a[i][j]==1) cout<<j<<" ";
			}
			cout<<endl;
		}
	}
	return 0;
}

懒得手写,发个贴记录一下

{{ vote && vote.total.up }}

共 2 条回复

ykj12

111

root 站长

1