✏️ 纠错
第 45 题 / 共 155 题

题目描述

来自两所学校 A、B 的 n 名同学聚在一起相互交流。为了方便起见,我们把这些同学从 1 至 n 编号。他们共进行了 m 次交流,第 i 次交流中,编号为 ui​,vi​ 的同学相互探讨了他们感兴趣的话题,并结交成为了新的朋友。

由于这次交流会的目的是促进两校友谊,因此只有不同学校的同学之间会交流。同校同学并不会互相交流。

作为 A 校顾问,你对 B 校的规模非常感兴趣,你希望求出 B 校至少有几名同学、至多有几名同学。

输入格式

第一行两个正整数,表示同学的人数 n、交流的次数 m。
接下来 m 行,每行两个整数 ui​,vi​,表示一次交流。

输出格式

输出一行两个整数,用单个空格隔开,分别表示 B 校至少有几名同学、至多有几名同学。

输入输出样例

输入 #1

4 3
1 2
2 3
4 2

输出 #1

1 3

输入 #2

7 5
1 2
2 3
4 2
5 6
6 7

输出 #2

2 5

说明/提示

数据规模与约定

  • 对 30% 的数据,保证 n≤17,m≤50。
  • 对 60% 的数据,保证 n≤500,m≤2000。
  • 对全部的测试数据,保证 1≤ui​,vi​≤n≤105,1≤m≤2×10^5,输入是合法的,即交流一定是跨校开展的。
📝 题目解析

【题目大意】给定n个点,这些点要么属于A类,要么属于B类,给定m条边,一条边的两个端点必然一个属于A类,另一个属于B类,求属于B类的点的个数可能的最小值和最大值。

【考纲知识点】图的遍历

【解题思路】按照题目的输入进行连边,此时可以将整张图分为若干个连通块,对于每一个连通块都进行01染色,设颜色为0和1的点的个数分别为x,y,则B类点的数量即可以是x也可以是y,让min_B+=min(x,y),max_B+=max(x,y),最后输出min_B和max_B即可。

【参考程序】