题号:NC21667
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld
题目描述
机房准备开办一场特殊的足球运动会,由于人太多,我们组成了n个队伍开始比赛,每两个队伍之间都会进行一场比赛,由于一些特殊的原因,还没开始比赛我们便已经知道了比赛结果,比如双方身高体重速度力量等相差悬殊,但有些势均力敌的比赛我们还不知道结果,现在给你一个n*n的字符矩阵G表示n个队伍之间的胜负关系, 如果x能赢y,则G[x][y]='W',G[y][x]='L'
如果还不知道x y之间的胜负,G[x][y]=G[y][x]='?'
每个队伍的胜率 s[i] = 第i个队伍胜出的场次/(n - 1)
本次运动会的dark裁判员由牛牛担任,牛牛由于数学天赋过人,他希望补充未确定的胜负关系来使得最终胜率的方差尽可能大
方差的定义:
aver = (s[0]+s[1]+..s[n-1]) / n
方差 =
误差与答案不超过1e-9算AC
输入描述:
第一行输入一个整数n (2 ≤ n ≤ 20)
接下来n行每行输入n个字符表示胜负关系
? 表示未确定
W 表示赢
L 表示输
- 表示自己不能跟自己比
输出描述:
输出一个浮点数
示例1
说明
某种最优情况,三个人胜率分别为{1, 0.5, 0},((1-0.5)^2 + (0.5-0.5)^2 + (0-0.5)^2) / 3 = 0.5 / 3 = 0.16667
-WW
L-W
LL-
示例3
输入
复制
5
-WWL?
L-L??
LW-?W
W??-L
??LW-
备注:
子任务一30分:n<=10
子任务二30分:n<=15
子任务三40分:n<=20