在美国,每年有 350 所学校争夺 NCAA 大学生篮球锦标赛的邀请名额。面对如此多的学校,该如何决定谁应该获得邀请呢?大多数球队之间从未交手,且有些球队的赛程比其他球队困难得多。
以下是 4 支球队 A、B、C、D 的赛程示例:
|ABCD -+---- A|.11. B|0.00 C|01.1 D|.10.
每行中的 1 代表一场胜利,0 代表一场失利。例如,球队 C 战胜了 B 和 D,输给了 A。球队 A 战胜了 B 和 C,但未与 D 交手。
NCAA 锦标赛委员会使用一种称为 RPI(胜率指数,Ratings Percentage Index)的公式来帮助球队排名。传统上,其定义如下:
RPI = 0.25 * WP + 0.50 * OWP + 0.25 * OOWP
WP、OWP 和 OOWP 对每支球队的定义如下:
WP(胜率,Winning Percentage)是你所赢比赛占总比赛场次的比例。
在示例赛程中,球队 A 的 WP = 1,球队 B 的 WP = 0,球队 C 的 WP = 2/3,球队 D 的 WP = 0.5。
OWP(对手胜率,Opponents' Winning Percentage)是你所有对手的 WP 的平均值,计算时需先剔除他们与你交手的比赛。
例如,如果剔除与球队 D 交手的比赛,那么球队 B 的 WP = 0,球队 C 的 WP = 0.5。因此,球队 D 的 OWP = 0.5 * (0 + 0.5) = 0.25。同理,球队 A 的 OWP = 0.5,球队 B 的 OWP = 0.5,球队 C 的 OWP = 2/3。
OOWP(对手的对手胜率,Opponents' Opponents' Winning Percentage)是你所有对手的 OWP 的平均值。OWP 即为上一步计算出的数值。
例如,球队 A 的 OOWP = 0.5 * (0.5 + 2/3) = 7/12。
综合以上各项,我们得出球队 A 的 RPI = (0.25 1) + (0.5 0.5) + (0.25 * 7 / 12) = 0.6458333...
关于 RPI,可以提出一些非常有趣的问题。它衡量球队能力的标准合理吗?对球队来说,赢得比赛更重要,还是安排强大的对手更重要?这些都是很好的问题,但对于本题,你的任务更直接:给定一份比赛赛程,你能计算出每支球队的 RPI 吗?
输入格式
输入的第一行包含测试用例的数量 T。接下来是 T 个测试用例。每个测试用例的第一行包含球队数量 N。
接下来的 N 行,每行包含恰好 N 个字符('0'、'1' 或 '.'),表示与上述示例格式相同的赛程。第 i 行第 j 列的 '1' 表示球队 i 战胜了球队 j,'0' 表示球队 i 输给了球队 j,'.' 表示球队 i 从未与球队 j 交手。
输出格式
对于每个测试用例,输出 N + 1 行。第一行应为 "Case #x:",其中 x 是测试用例编号(从 1 开始)。接下来的 N 行应包含每支球队的 RPI,每行一个,顺序与赛程中的顺序一致。
相对误差或绝对误差不超过 $10^{-6}$ 的答案将被视为正确。
数据范围
$1 \le T \le 20$。
如果赛程中第 i 行第 j 列为 '1',则第 j 行第 i 列必为 '0'。
如果赛程中第 i 行第 j 列为 '0',则第 j 行第 i 列必为 '1'。
如果赛程中第 i 行第 j 列为 '.',则第 j 行第 i 列必为 '.'。
每支球队至少与其他两支球队交手。
没有两支球队交手超过一次。
没有球队与自己交手。
内存限制:1GB。
小数据集(测试集 1 - 可见;8 分)
$3 \le N \le 10$。
时间限制:2 秒。
大数据集(测试集 2 - 隐藏;12 分)
$3 \le N \le 100$。
时间限制:3 秒。
样例
输入 1
2 3 .10 0.1 10. 4 .11. 0.00 01.1 .10.
输出 1
Case #1: 0.5 0.5 0.5 Case #2: 0.645833333333 0.368055555556 0.604166666667 0.395833333333