#CF977e. 循环连通分量
循环连通分量
E. 循环连通分量
每个测试的时间限制: 秒
内存限制: 兆字节
你有一个由 个顶点和 条边组成的无向图。你的任务是找出连通分量中,那些恰好构成一个环的数量。
以下是图论中的一些定义。
一个无向图由两个集合组成:节点的集合(称为顶点)和边的集合。每条边连接一对顶点。所有的边都是双向的(即如果顶点 与顶点 相连,那么顶点 也与顶点 相连)。一条边不能连接顶点自身,且每一对顶点之间最多有一条边。
两个顶点 和 属于同一个连通分量,当且仅当存在至少一条由边组成的路径连接 和 。
一个连通分量被称为环,当且仅当它的顶点可以按某种顺序重新排列,使得:
- 第一个顶点与第二个顶点之间有边相连,
- 第二个顶点与第三个顶点之间有边相连,
- ……
- 最后一个顶点与第一个顶点之间有边相连,
并且上述描述中所用到的所有边都是互不相同的。环中除了上述边之外不包含任何其他边。根据定义,任何环都包含至少 个顶点。
下图中共有 个连通分量,其中 个是环: 和 。
输入
第一行包含两个整数 和 (,)—— 顶点数和边数。
接下来 行,每行描述一条边,格式为 (,)。给出的图中没有重边,即对于每一对 ,在边列表中不会出现其它 或 。
输出
输出一个整数 —— 那些是环的连通分量的数量。
示例
输入
5 4
1 2
3 4
5 4
3 5
输出
1
输入
17 15
1 8
1 12
5 11
11 9
9 15
15 5
4 13
3 13
4 3
10 16
7 10
16 7
14 3
14 4
17 6
输出
2