#cFYSlydlt60x6501. 观光奶牛 Sightseeing Cows
观光奶牛 Sightseeing Cows
好的,这是整理好的题面,不含解题思路,只包含样例解释。
题目描述
给定一张 个点、 条边的有向图。
每个点有一个权值 ,每条边有一个权值 。
求图中的一个环,使得“环上各点的权值之和”除以“环上各边的权值之和”最大。
输出这个最大值,保留两位小数。
数据保证至少存在一个环。
输入格式
第一行两个整数 和 。
接下来 行,每行一个整数 ,表示第 个点的权值。
再接下来 行,每行三个整数 ,表示从点 到点 有一条有向边,权值为 。
输出格式
输出一个实数,表示最大值,保留两位小数。
数据范围
输入样例
5 7
30
10
10
5
10
1 2 3
2 3 2
3 4 5
3 5 2
4 5 5
5 1 3
5 2 2
输出样例
6.00
样例解释
,点权:
1: 30
2: 10
3: 10
4: 5
5: 10
,有向边(起点→终点,边权):
1→2: 3
2→3: 2
3→4: 5
3→5: 2
4→5: 5
5→1: 3
5→2: 2
寻找最大比值的环
目标是最大化 ,其中 取环上的点,边取环上的边。
环 5→1→2→3→5:
- 点:5,1,2,3,点权和 = 10+30+10+10 = 60
- 边:5→1(3), 1→2(3), 2→3(2), 3→5(2),边权和 = 3+3+2+2 = 10
比值 = 60/10 = 6.00
环 5→2→3→5:
- 点:5,2,3,点权和 = 10+10+10 = 30
- 边:5→2(2), 2→3(2), 3→5(2),边权和 = 2+2+2 = 6
比值 = 30/6 = 5.00
环 1→2→3→5→1:
- 点:1,2,3,5,点权和 = 30+10+10+10 = 60
- 边:1→2(3), 2→3(2), 3→5(2), 5→1(3),边权和 = 3+2+2+3 = 10
比值 = 60/10 = 6.00
环 2→3→5→2:
- 点:2,3,5,点权和 = 10+10+10 = 30
- 边:2→3(2), 3→5(2), 5→2(2),边权和 = 2+2+2 = 6
比值 = 30/6 = 5.00
可见最大比值是 6.00。
输出 6.00。