B. Diameter of Graph1200 / 思维

Posted 幽殇默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了B. Diameter of Graph1200 / 思维相关的知识,希望对你有一定的参考价值。


https://codeforces.com/contest/1581/problem/B
直径只可能有0 , 1 , 2三种情况
直径为0的情况:

直径为1的情况:

直径为2的情况:

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
LL n,m,k,t; 
void solve()
{
	if(n==1)//点数为1
	{
		if(m==0&&k>=2)  puts("YES");
		else puts("NO");
		return;
	}
	if( n*(n-1)/2<m ||n-1>m || k<3 ) //边数太多了 边数不够 k太小了
	{
		puts("NO");
		return;
	}
	if(k==3)//说明我们的直径必须小于等于1
	{
	    if(n*(n-1)/2==m) puts("YES");//完全图,完全OK
	    else puts("NO");//不是完全图,故直径至少为2, 2>k-2
	}
	else puts("YES");
	//说明是树,因为k>=4,故我们的最大直径只要小于2即可。因为我们树的直径最大就是2,故可以
}
int main(void)
{
	cin>>t;
	while(t--)
	{
		cin>>n>>m>>k;
		solve();
	}
	return 0;
}

以上是关于B. Diameter of Graph1200 / 思维的主要内容,如果未能解决你的问题,请参考以下文章

CF图论思维D. Maximum Diameter Graph

Codeforces 1082 D. Maximum Diameter Graph-树的直径-最长链-构造题 (Educational Codeforces Round 55 (Rated for

543. Diameter of Binary Tree

543. Diameter of Binary Tree

LeetCode 543. Diameter of Binary Tree 解题笔记

LeetCode 543. Diameter of Binary Tree 解题笔记