牛牛的足球赛
题号: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

输入

复制
3
-??
?-?
??-

输出

复制
0.16666666666666669

说明

某种最优情况,三个人胜率分别为{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-
示例2

输入

复制
3
-WL
L-W
WL-

输出

复制
0
示例3

输入

复制
5
-WWL?
L-L??
LW-?W
W??-L
??LW-

输出

复制
0.07500000000000001
示例4

输入

复制
4
-WWL
L-??
L?-?
W??-

输出

复制
0.1388888888888889

备注:

子任务一30分:n<=10

子任务二30分:n<=15

子任务三40分:n<=20