欢迎光临散文网 会员登陆 & 注册

第十三届安徽省大学生程序设计大赛_C搜索航桥

2022-07-02 17:10 作者:Clayton_Zhou  | 我要投稿

题目描述

天宫四号与空间站的对接令人兴奋,随着国家的航天事业的蓬勃发展,空间站与空间站之间的联系愈发紧密。为了以后能够知道哪些空间站可以相连,假设现在有N个空间站,有M条航道相连,如果某条航道被废弃后,A空间站无法到达B空间站,那么称这条航道为A,B空间站之间的航桥,现在我们想实时知道一些空间站之间有几条航桥。在询问的过程中,有些航道会被废弃掉。 你能想出最快速的算法,找出航桥吗?

输入说明

第一行N,M表示有N个空间站,M条航道,1 ≤ N ≤ 30000,1 ≤ M ≤ 100000,询问数加删除数不多于40000。

接下来M行表示M条航道,每行两个整数,表示两个空间站有航道相连。然后每行三个整数C、A、B:如果C=0表示A和B空间站之间的航道被永久删除;如果C=1表示询问A和B空间站间有几条航桥;如果C=-1则输入数据结束。保证空间站任意时刻都联通。

输出说明

对于每一个询问,给出航桥的数量,每次询问结果一行。

输入样例

5 5

1 2

1 3

3 4

4 5

4 2

1 1 5

0 4 2

1 5 1

-1

输出样例

1

3




大致思路:

在一棵树上,多加一条边,连接这个边两顶点的简单路径,就必然不可能是题目说的那种割边。故简单路径上每个顶点权重为0

那么简单路径上所有的顶点就是只有0和1两种权值,两点之间割边数量就是两点之间顶点权为1的数量。


第十三届安徽省大学生程序设计大赛_C搜索航桥的评论 (共 条)

分享到微博请遵守国家法律