#P1012. 【模板】判断稠密、稀疏图

    ID: 13 传统题 1000ms 256MiB 尝试: 1 已通过: 1通过率: 100%难度: 入门 ← 上一题 下一题 → 随机一题 上传者: 标签 数学 模拟 输出格式化 图论 输入输出
显示设置

【模板】判断稠密、稀疏图

题目描述

小W拥有许多张无向图。

在 nn 个点 mm 条边的无向简单图(无自环、无重边)中:

  • 最大可能边数为
M=n(n−1)2M = \dfrac{n(n-1)}{2}
  • 边的密度为
ρ=mM=2mn(n−1)\rho = \dfrac{m}{M} = \dfrac{2m}{n(n-1)}

密度 ρ\rho 的取值范围为 [0,1][0, 1],越接近 11 说明图越稠密,越接近 00 说明图越稀疏。

本题中,我们采用经验阈值 nlog⁡2nn\log_2 n 来判定稀疏与稠密:

  • 若 m≥nlog⁡2nm \ge n\log_2 n,则该图为稠密图,输出 1;
  • 否则该图为稀疏图,输出 0。

现在给定 TT 张无向图,请你对每一张图求出它的最大可能边数、边的密度,并判断它是稠密图还是稀疏图。

输入格式

输入第一行一个整数 TT。

接下来 TT 行,每行两个整数 n,mn, m,表示一张图的顶点数与边数。

输出格式

对于每组数据,输出两行:

  • 第一行:一个整数和一个实数,中间用一个空格隔开,依次为最大可能边数 MM 和边的密度 ρ\rho,其中 ρ\rho 保留两位小数(四舍五入);
  • 第二行:一个数 0 或 1。1 表示该图为稠密图,0 表示该图为稀疏图。

输入输出样例 #1

输入 #1

5
20 156
74 1710
89 2597
13 14
78 2548

输出 #1

190 0.82
1
2701 0.63
1
3916 0.66
1
78 0.18
0
3003 0.85
1

输入输出样例 #2

输入 #2

5
869 232449
897 320229
545 140707
945 379912
902 358144

输出 #2

377146 0.62
1
401856 0.80
1
148240 0.95
1
446040 0.85
1
406351 0.88
1

说明

nn 最大可达 10910^9,n(n−1)n(n-1) 可达 101810^{18}。

样例解释

以样例一第 11 组数据(n=20,m=156n=20, m=156)为例:

  • 最大可能边数 M=20×192=190M = \dfrac{20 \times 19}{2} = 190;
  • 边的密度 $\rho = \dfrac{2 \times 156}{20 \times 19} = \dfrac{312}{380} \approx 0.8211$,保留两位小数为 0.820.82;
  • 因为 nlog⁡2n=20log⁡220≈86.44≤156n\log_2 n = 20 \log_2 20 \approx 86.44 \le 156,所以是稠密图,输出 1。

样例一第 44 组数据(n=13,m=14n=13, m=14):M=78M = 78,ρ=28156≈0.1795→0.18\rho = \dfrac{28}{156} \approx 0.1795 \to 0.18;而 13log⁡213≈48.1>1413\log_2 13 \approx 48.1 > 14,所以是稀疏图,输出 0。

数据范围

  • 对于 30%30\% 的数据,2≤n≤1042 \le n \le 10^4。
  • 对于 50%50\% 的数据,2≤n≤1062 \le n \le 10^6。
  • 对于 100%100\% 的数据,2≤n≤1092 \le n \le 10^9,1≤m≤n(n−1)21 \le m \le \dfrac{n(n-1)}{2},1≤T≤2×1051 \le T \le 2 \times 10^5。