[2019提高组模拟试题]相等的集合
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
Description
小T翻出了必修1~5和选修系列所有数学书,信誓旦旦的准备开始复习。翻开必修一就看见了可爱的集合,小T突然想起这样一个问题: 假如有n个集合,现在有m个包含关系,形如A∈B,意思是集合A包含于集合B。显然我们知道,A∈B且B∈A,就可以推出A=B,即A、B两个集合是相等的。类似的,如果A∈B,B∈C,C∈A,那么有A=B=C成立。 小T觉得这些集合是两两相等的,为了验证这个猜想,小T可能需要再去验证一下一些集合是否有包含关系。但是小T时间紧张,除了集合还有很多东西要复习,就请你告诉他至少需要验证多少对集合的包含关系(同样,形如A∈B,为一个包含关系)。
Input Format
第1行:两个整数,n、m。我们n个集合从1到n编号,记其为X1、X2……Xn。 第2~m+1行:两个整数a、b,表示Xa∈Xb。
Output Format
一行一个整数,即至少需要验证的包含关系数目。
Sample
【输入样例一】
4 0
【输出样例一】
4
样例一解释:一种可行的方法是,验证X1∈X2,X2∈X3,X3∈X4,X4∈X1。
【输入样例二】
3 2
1 2
1 3
【输出样例二】
2
样例二解释:一种可行的方法是,验证X2∈X1,X3∈X1。
Hint
本题共有 25 个测试数据。 对于其中前 3 个数据,n≤17,m≤30; 对于其中前 8 个数据,n≤600,m≤10000; 对于所有的数据,n≤20000,m≤50000; 提示:可能有不需要验证任何其他的关系的情况,此时输出 0 即可。数据中存在有 5 个数据,m≤2。