- C++
求标程和数据
- @ 2026-6-2 20:55:54
火烧连船
题目描述
赤壁之战,曹军有 艘战船, 条铁索。
每条铁索 表示:船 被铁索连向船 (有向边)。
若船 能通过铁索到达船 ,则 着火时 也会被引燃。
定义源头船为:没有其他船能引燃它的船(即入度为 )。
火攻之后,一些铁索被烧断。要求 烧断后,源头船的集合不变。
求最多能烧断多少条铁索。
输入格式
第一行两个整数 。
接下来 行,每行两个整数 ,表示一条铁索 。
输出格式
一个整数,表示最多能烧断的铁索数。
样例输入
12 14
1 2
1 12
2 3
3 4
4 5
5 2
6 4
6 7
6 10
7 8
8 9
9 10
10 11
11 9
样例输出
4
样例解释
原始图中有两个环:
源头船为 和 (没有船能牵引它们)。
一种删除 条铁索的方案(保留 条):
保留:
1 → 2
1 → 12
2 → 3
3 → 4
4 → 5
6 → 7
7 → 8
8 → 9
9 → 10
10 → 11
删去:
5 → 2
6 → 4
6 → 10
11 → 9
此时源头船仍是 和 ,且所有船仍能被源头船到达。
可以证明 是最大值。
数据范围
- 对于 的数据:,
- 对于 的数据:,
- 对于 的数据:,
图中可能有重边和自环。
0 条评论
目前还没有评论...