Diameter of Graph

#include<iostream>

using namespace std;
int t;
long long n,m,k,p,x;
bool solve(){
	if(n==1){
		if(m>0||k-1<1) return false;
		else return true;
	}
	else{
		if(n-1<=m){
			if(m==n*(n-1)/2){
				if(k-1>1) return true;
				else return false;
			}
			else if(m<n*(n-1)/2){
				if(k-1>2) return true;
				else return false;
			}
			else return false;
		}	
		else return false;
	}
}
int main(){
	cin>>t;
	while(t--){
		cin>>n>>m>>k;
		if(solve()){
			cout<<"YES"<<endl;
		}
		else cout<<"NO"<<endl;
	}
	return 0;
}

n个点 最少需要n-1条边联通,最多需要n*(n-1)/2条边

特判n=1

n-1=<m<n*(n-1)/2时连接方式如图

Diameter of Graph

 m==n*(n-1)/2时 每个点都相连

上一篇:MST(最小生成树)


下一篇:使用GQLGEN搭建GRAPHQL的GO服务端