题目描述
在游戏开始之前,游戏大师在房间的某些地方隐藏了N个玩具。玩具编号为1到N。您的任务是尽可能多地找到这些玩具。
你没有任何辅助信息就能找到第i个玩具的概率是p[i]%。您每找到一个玩具后,有可能可以得到一些辅助信息,这些辅助信息是告诉您其他某些玩具所在的位置。如果您已经知道玩具的位置,您一定会找到它。
给出二维数组clue[1..N][1..N],其中clue[i][j]=‘Y’表示若找到第i个玩具则会告诉您第j个玩具的具体位置;clue[i][j]=‘N’表示第i个玩具没有第j个玩具位置的辅助信息;
你的任务是计算您在游戏中找到的玩具数量的期望值。
输入输出格式
输入格式
多组测试数据。
第一行,一个整数G,表示有G组测试数据。1 <= G <= 10
每组测试数据格式如下:
第一行,一个整数N。1 <= N <= 50。
第二行,N个整数,第i个整数是p[i],0 <= p[i] <= 100。
接下来是N行N列的二维数组clue。
输出格式
共G行。每行一个实数。误差不能超过0.00001。
输入输出样例
输入样例
10
1
50
Y
2
100 50
YN
NY
3
100 0 0
YYY
NYY
NNY
3
0 0 0
NNN
NNN
NNN
10
11 66 99 37 64 45 21 67 71 62
NYYNYYNNNN
NNNNYNNNYN
YNNYYYYYNN
YYNYNNNNYN
NYNNNNNNNY
YNYYNNYNNY
NYNNYYYYYY
NYYYYNNNNN
YYNYNNYYYN
NNYYNYNYYY
3
50 50 1
NNY
NNY
NNN
50
43 29 22 5 34 0 21 25 31 1 0 3 6 31 2 44 40 41 1 35 32 0 38 3 8 45 38 49 15 48 42 42 13 37 36 8 23 24 38 8 22 5 8 35 50 33 16 37 44 0
YYNNYYNNYYNYNYNYNNNNNYYYYNNYYYNNYYNYYYYNNNYYNNNNNN
YYNYYNNNYNYNNYNNYNNYYYYNYYNNYYYNNYNNNYNNYYYNNYYNNY
NNYNNYYNNNNYYNYYYNYNNNYNNNYNNNNNYNYYYYNNNNYYNNYNYN
YNNNYNYNNNYNNNYNNNYYNNYYNYYNNYNYYYYNYNYNYNYNYNYNNY
NNYNNYNNNNNYYYYYYNYNNYNNNNYNNNNNYYNNYYNNYNYNYYYYNN
YYYYNYNNNYNNYYNYNYYYNNNNYNYYNYNNNNNYNNNNNYNNNNYYYN
YYYNNNYYYYNNNNNNYYNNNNNNNNYYNNNNYYNYYNYYYNNNYYYYYY
NYNNYNYNYYNNYYNNYYYNYNNYYYNYYYNYNNYNYNNNNNNNYNYYNN
YYYNNNYYNNYNYNYNYNYYYNYYNNYNYNYNNNNYNNNNNNYYNNYYYY
YYYYYYNNYNYYYYYNYYYNYNYYYNNNYNYNYYNNYNYYYYYNYNYNNY
NYNYYNYNYNNYNNYNNNYYYYNNYYYNYNNYNNYNYYNNNNYYNNYNYN
YYYYYYYYNNNYYYNNNYNYYNYYYNNYNNNNYNNNYYYNNYNYYNNYYN
NNYNNNNYYNYNNYNNNYYNNYNNYYYNNYYYYNYNNNNYNNNYYYNNNN
NYYNNNNNNYYYYNYYYYYYYYYNYYYNYYNYNNYYYNYNYYNYYYYYYN
YNYNYNNNNYNNNYYYYNNNYYNNNYYNNNNYNNYYYYYYYYNNYYNNYY
NNNNYNYNNNYNYYYNNYYYNNYNYNNYYNNNYNNNNYYYNYNYYYNYNN
YNYYYNYNYNNYYNYYYNNNYNNNNNNNYYNYNYYNNYYYNNNNYYNNNY
YNYNYNNYNNYYNYYYNYYYYYYYNYYYYNYYNYYNYNNYNNYNYNYYYY
YNNYNNYYYYYYNYNYNNYNYNYYYYYNYYNYNNYNNNNNYNNYYYYNNN
NYNNYYNYNNNNNYYYNNYYNNYNYNNNYYNYNYYYYYYYNNNNNNNNYY
YNYNNYNYNNYYNYNNYNNNNNNYNNNYYYNNYYNNNNYYNNNNNNYNNY
YYNYYYYYYNYYYYYYNYYYNNYYNYNNNYYYNNYNYNYYYYYYYNNYNN
NNNNYYNYNNYYYYNNYYNNYNNYYYNNYYYNNNNNNNNNNYYNYNYYNN
NYYNNYNNNYYYYYYNYYYNYNYNYYYYYNNNYNNNNYYYYNNNYNNYYN
YNYYNYYNNNYYYYNNNYYNYNNNYNYNNNYYYNNYYYNYYNNNYNYNNY
NYYYNYYNYYNYNYNNNNYNNNNYNYNNYNNNNNYYYYYYYYYYNYYNNN
NNNYYYYYNNYYNNYYYYYYYYYYNNNYNNNYYNYYYNYYNYYYNNYYYN
YNYNNNNNNYYNNNNNYNNNYYNNYYNYYYNNNNNNYYYYYYYNYYYNYY
NYYYYYYNYNYYNNNNNYYYYNYYNNYNYNYNNNYNYYYNNYNNYYNYYN
YNYYYYYYNYYYNNYYNNYNNYYNYNNYNYYYNYNYNYNNNYNYYNNNYN
NYNYYYYYNNNNYNYNNNNNYYYNNNYNYYYNNNYNNYYNNYYNNYNNYY
NNNYYNYYYYYYYYNNNYYYYNYYYYYYNYNNNYYNNYYNYYYYNYYNYY
YYNNYNNYNYYNYYYNYYYYYYYYYYYNNNNYNNYNYNYNNYYYNYNNYY
YNYNNYNYYYYYYNNNYNYYNYNYYYYNNYNYNNYNYYYYYYYYYNNNNY
YNNNNNYYYNNYYYYNNYYNYNNNYYYNYNYNYNNYYYNNYNNYYNNYYN
NYNYYNYNNNYYNNYNNNNYNYYYNYYNNYNNYNNYYNNNNYYNYNNNYY
YNNYYNYNNNNNNNYNNNYYYNNNYNYNYYNYNYYYNYNYYYYYYYNYNY
YNYNNYYNNNYNNNNYYYNNYYYNNYNNNNNNYNYNYNNNYNNNNYNNYN
YNYYYYYNNYYYNNNYNYYYNYYNYNYYNNNYYNYNYYYNNNNYNYYNYN
NYNYNNNYNYYYYYYNYNYNNYNYYYNYYYNYNYNNNYNNNNNYNYNYNN
YYNYYNNYYYYYYYYNNYNYYYYYNYYYYYNYYYNYNNNYYNNYYYNNYY
YYNNNNNYYNYNYNNNNNYNNYYNNYNYNNNYYNYNYNNYNYNNNYNNNY
YNYYNYYYNYYNNYYYNNNNYNYNYYYYNNNNYNYYYNNNNNYNNNNYYY
NNYYYYNYYNYYNYYNNYNNNYNNNNNYNNNYNYYNNNYNYNYNYNNYYN
YYNNYNYYNYYYYYNYYYNNNYYNYYYNYYYNNYYYNYYNNYNYNYNNNN
NYNYNYNNNYYYYNYYNYNYYYYNYYNNYYYYNNNNNNNNNYYYNYYYNY
YNYNNYNYNNNYNYYNYNNNNNYYYYNYNNNNYNNNYYNNNYYNNNYYNN
NYNNYYYNYNNYYNNNYYNYNNYNYNNNNYYNNYNYNNYYNYNNNYNNNN
NNYNYYNYNYYNYYNYYYYYYNNNYNYYYYNNYNYYYNYNYNYNYNYYYY
NNNYNNYYYYNNYYYYYNNYYYYYYNNYNNNYYYYYYNNYNYYYNNYNYN
50
17 4 18 9 16 16 15 14 9 0 1 14 2 12 4 1 9 17 17 9 16 4 9 2 0 3 4 7 17 6 1 10 13 2 0 3 10 10 9 2 7 18 7 16 9 13 19 5 18 10
YYNNYYNYNYYNYYYYYYYYNNNNYYYNYNYYYYNNYNNYNYYYNNYNYN
YYNNYYNYNNYYNYYNNNNNNYYYNNNNNYNNNNNNYNNNNNYYYYYNNN
NYYNYNNYNNNYYYYNYYYNYNNYYYYYYYYYNNYYYYNYNYYYNYNYYN
YNNNNNYNNYYYNYYNNNYNYYNYYNNNYYNYYNNYNNYNNNYNNYNNNY
NNNNNYYYNNNYNYNYYNNYNNYYNYNNNYNYNYNYYNYYYNYNYNYNNY
NNNNYYNYYYNYYNNYYYNNNNYYYNYNNNYNYYYYYNNYNNNNNYNNNN
YNNNYNYNYNNNNYNYNNNNYYYNYYYNNYYNYNNNYYYYNNNYYYYYNY
YYNNYYYYYNYYNNNNNNNYNNNYNNYNYYYNYNYYYNNNYNNNYYYNNN
NNNYNNNYNNNNYYNNYNNNYYYNNYYNYNYNNYYYNNYNNYNNYNYNNN
NYYYNNYYNNYNNNNYYNNYNYNYNNYNNNNYNNNNYNYNYNNNNNNNYY
NNNNYYNYYNNYNNNNYNYNNYYNNYNYNNYNNYNNYNYYYYNNYYYNYN
YNYNNNYYYYYYYNYNYNNYYYYYNNYNYYNNYNNYNYYNYNNNNNYNYY
NYYYYNNNYYYYYYNNNNYYYYYYNYYNNYYYNNNNNYNYNYNNNNNNNY
YNNYYNYYNNNNYYNNYYNYYYNYNNYYNYYYNNNYYYNYYYYYNYYNYY
YNYNYYNYYYYYNNYNNNNYNNYYYNYNNYYNNNYNNNNYNYNNNNNYYY
YNYNYNNNYNYNYNNYNYNNNYNYNNNNYYNYYYYNYYYYNYNYNYYNYN
NNNNYYNNYNNYNYYNYYYNNNNNYNNNNNNNYYYYNNYYYYNNNNNNYY
NYNNYYNYNNYNYYYYNNYNNNNNYYNYNNNNYYNYYNYYYYNNNNYNYY
NYNNNYNYYYYYYNNNNYYNNNNYNYYYYNNNYYNYNYYYNNNNYYYNNY
YNNYYYNYYYNYNYYYYYYNNYYNYNNYYNNNYNNNYYNYNYYYYYYYYN
NYYNYYYNNYNNYNYYNNNNNYYYYYNYYYYNNYYNYNYYYYNNYNYYYY
YNNYNNNYNNYNYYNNYYYNYYYYYNNNNNYYNYYNYYNNNNYYYYNYNN
NYNNYYYNNNNNNYYNNNYNNNYYYNYYYNNNYNYYNYYNYYNYYNNYYN
YNYNYNYYNNYNYNYYNNYYYYYNYNNYYNNNYYNNYYYNNYYYNYYYYY
YNNNYYYNYNNNYYYNNNNNNYNYNYNYNYYYYYNYYYYNYNNYYYYYYY
YNNNYNYYYYNYNNNYNYNNYYNNYYYNYNNYYNYNNYNYNNNNYYNYNY
YNNYNYNNYYNYYYYNYYNYNNNNNNYNYYYNNNNNNNYNYNNYNYNYYN
YYNYYNNNYNNYNYNNYYYNYNNYNYYYYNNYYYYNYYYNYYNNNNYYNN
YYNYYNNNNYNNYYYYYNYNYNYYYYYNYYNNYYNNNNNYYNYNNNNNYY
YYNNNYNYNNYYYNYYNYYYYNYNYNNYNYYNYNYYNYYYYYYYYYNYNN
NYNYYYNYYNNYYNNNNNYNNYNNYYNNYYYYNNNYYNYNNNYNNYNYNN
NYYYYNYYNNNNYYYNNYNYNNYNYNYYNYNYNNYNNNNNYNYNYNYYYY
YNYYNNNNNNYYYYYNNNYNYNNNNNYNNNYNNNNYNYNYNYNNNYNYYY
YYYNYYNNNYNYYYNNNYNYYNYNNYNYNYNYNNYNYYNNYNYNNNNYNN
NYYNNYNYNYYNYYNNNYNYYYNNNNNYYYYNNYYNNYYNNNYNYYYYYN
YNNYYNYYYYYYYNNNNNYYYYNYYNNNYNNNYNYYYNYYYNYNNNNYNN
NNYYNYNYYNNYNNYYNNNNNYNYNNYYYNNYYNNYYNNYNNYYYYYNNY
NNYYYYNNYYYYNYYYNYYNNYYYYNYNYYNNNNNNYNYNNNYYYNYNYN
YNNNNYNYNYNYYYNYYYYYYYYNYYNYNYYYNYNYYYNNYYNNNNNNYY
YNNYYYYYYNNNYNNYYYYYYYNNYYNYYNNNNNYNNNYNNYNNNNNYYY
YYNNYNNNNYNNNNNYNNNYNNYNNYYYNNYYNYNYYNYNNNNNYNYYNN
YNNYNNYNNNYYYNNNNNNYYNYNYYNYYNYNYYNNYNYNYNYYNYYYNN
YYNNYNNNYYNNYNNNYNNNNNYYNYNYYNNYNYYYYYNYYYYNNNYYNN
NNNYYNYNNYYNNNNYNYNNYYNNNNNYNNYYYYYYYNNYNYNYNNYNNY
NNYNNYYYNNNYNNYNYNNNYNNNYYYNNYNNNNYNNNYYYNYYNYNNNY
YNNNYNNYNNYNYYYNNNNNNYYYYYYYNNNNYYYYNYNNNNNYYNYYNY
YYYNNYNYNYYNYYYNYNYYNYYNNNNYNYYNYYYYNNYNNNNYNNYNNY
YNNYYNNYNYNYYNYYNNYYYNNYNNNYYYYNYNYNYYNYYNYYNNYYYY
YNYNYYYYNNYYYYYYNNNNNYYNNNNYYNNNNNNYYYNNNNNNYNYYYN
NNYYNYNYNNNNNNYNYYYYNYNYYNYYYNYNYYYYNNYNNYNYYYNNYN
50
33 11 4 49 43 24 50 25 20 15 44 27 5 50 35 19 18 24 17 22 37 44 10 1 7 34 49 48 28 26 45 8 40 25 18 18 21 21 14 17 21 20 27 29 19 6 28 49 26 31
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNYNNNNNNYNNNNNNNN
YNNNYNNNNNNNNNNNNNNYYNNNNNNNNNNNNNNNNNYNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNYNNNNNNNNNNNNNNNNNY
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNYNNNNNNNNNNNN
NYNNNNNNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNYNNYNNNNNNNNYNNN
NNNNNNNNNNNNNNNNNNNNNYYNNNNNNNNNNNNNNNNNNNNNYNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNYNNNNYNNNNNYNNNNN
NNNNNNNNNNYNNNNNNNYNNNNNNYNNNNNNNNNNNNNNNNNNNNNNYN
NNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNN
YNNNNNNNNNNNNNNYNNNNNNNNNYNNNNNNNNNNNNNYNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNYNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNYNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNYNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNYNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNY
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNYNNNN
NNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNYNNNNNNNNNN
NNNYNNNNNYNNNNNNNNNNNNNNNNNNNNYYNNNNNNYNNNNNNNNNNN
NNNNNYNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNYNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNYNNNN
NNYNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNYNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNY
NNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNYNNNNNNNNNYNNNYNNNNNNNNNNNNNNNNNNNNNNNNNYYNNNN
NNNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNN
NNNYNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNYNNNYNNNNNNNNNNNNNNNYNNNNNNN
NNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNYNNNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNYYNNNNNNNNNNNN
NNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNYNNNNYNNNNNYNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNYNNNN
NNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNYNNNNN
NNNNNNNNNNNNNNNNNNYNYNYNNNNNNNNNNNNNNNNNNNNNNNNNNN
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNYNNNNNN
NNNNNNNNNNNNYNYNNNNNNNNNNNNNNNNNYNNNNNNNYNNNNNNYNN
50
61 24 45 93 76 39 79 84 77 68 43 100 21 26 27 82 31 70 23 89 98 74 87 75 73 39 91 15 52 46 15 58 93 73 75 73 30 59 89 87 55 5 46 28 31 36 98 12 42 61
NNNNNNNNNNYNNYNNNNNYNNNNNNNNNNNNNNNNNNYNNNNNNNNNNN
YNNNYNYNNNNNNYNNNNYNNNYNNNYNNNNYNNNNNNNNNYNYYYYYNN
NNNYNNYNYNYNNNNNNNNNNNNNNNNYNNYYNNNNNYNYNNNYNNNYNN
YNNYNNNNNNNYNNNNNNNNNNNYNNNNNNNNNNNNNNNYNNNNNNNNNN
NNNNYNNNYYNNNNNNNYNNYNYYNYNYNNNNNYNNYNYNYNNNNYNNNN
NNYNNNNYNYNNNNYNNNNNYNYNYYNNYYYNNNNNNNNNYNNNNNNNNN
NNNNYNNNNNNNNNNYYYNNNNNNNNNNNNNNNNNYNNNYYNYNNNNNNY
NYNYNNNNNNNNNNNNNNNNNNNNNNYYNNNNNNNNYYNNNNNYNNNNNN
NNYNYNNNNNNYNYNNNNNYYNNYYNNNNNNNNNNYYNNNNNNNNNNYNY
YNNNNNNYNNNYNNNNNNNNYYNNYNNNYNNYNNNNNNNNYYNNYYNNNY
YNNNNYNNNNNYNNYNNNYNNYNNNYNNNNNNYYNNNNYNNNNYNNNNNY
NNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNYYNYNNNNNNYNNNNNNN
YNNNNNNNYNNNNNNNYNNNNNYNNYNNNNYNNNNNNNNNNNNNNYNYNY
NNNNNNNNNYNYNNNNNNNNNYNNNNNNNNNYYNNNNNNNNNYNYNNNNN
NNYNNNNNNNNNNNYNNYYYNNNNNNNNNYNNNYNYNNNNNYNNNNNYYN
YYNNNNNNYNNNNNNNNNNNNNNNNNNYNYNNYNYNYNNNNNNNNNNNNN
NNNNYYYNNYYNNNNNNNNNNYNYNNNNYNNNNNYNNNNYNNNNNYYNNN
YYNNNNNNYNNYNNNYNNNYNNNYYNNYNNNNNNNNNNYNNNYNNNYNNY
NNNNYNYNYNYNYNNNNNNYYYNNNYNNNNNNNNNNNNNNNNYNNNNNNN
YNNNNNNNNNYNNNNNYNNYNYNNNNNNNNNYNNNNYNNYNYNYNNYNYY
NNNNYNNNNNNNNNYNNNNNNNNNYNNYNNNNNNYNNNYNNNNNYYNNNN
NNNNNNNNNNNNNNNYNNNNYNNNNNNNNNNYNNYNYYNNNNNYYNNNNN
NNNNNNYNYNYYNNNNNNNNNNNNNNNYNNNNYYYYNNYYNNYNNNNNNN
NNNNNNNNYNNNNNNNNNYNYNNNNYNNYNYNYNNNNNNYNNNNNNYNNN
NYYYNYNNNYYNNNNYNNNNNNNNYNNYNNNNNYNNNNYNNYNNNNNNNN
NNNNNNNNNYNNNNNNNYNYNYNNNYNNYNNNNNNNNNNNYNNNNNYYYN
NNYNYNNNNNNNYNNNNNYNNNNNNNNNNNNNNNYNYYNNNNNYNYYNYY
NNNNYNNNNNNNNNNNNNNNYYNNNNNYNNYYNNNNNNNNNNNNYYNNYN
NNNNNNNNYNNNNNNNNNNNNYYNNNNNNNNYNYNYNNNNNNNYNNYNNY
NNNNNNNNNNNNYNYNNNNNNNNNNNNYNNNYNNNNNNNNNNNYNNNNNY
NNNNYNYYNNNNNYYNNNNNNNNYNYNNNNNNNNNNNYNNYNYYNNNNNN
NNYNNNNNYYYNNNNNNYNNNYNNNNYNNNNNNNNYYYNNNNNNNNNYNN
NNYYNYNNNYNNNYNNNNNNYNNYNNNNNNNYNNNNNNNNNNNNYNNNNN
YNNNNNYNNNNNYNNNNNNNYYYYYNNNYNNNYNNYNNNYNNNYYNYNNN
NNNNNNNNNNNNNYYNYNNNNNNYNYNNNNNNNNNNYNNYYNNNNNNYNY
NNNNNNYNNYNNNNNYNNNNNNNNNYYYYNNNYNNYNYNNYNNNNNYNNN
NYNNNYNYNNNNNNYYNNNNNNNNNYYYNNYNNNNNNNNNNNYNNNNYNN
NNNNNNYNNNNNNNNYNNNNNNNNNNNNNNYNNNNYNNNYNNNNNYYNNN
NNNNNNNNNNNNNYYNNNNYNNNNYNNYNNYYNNNNYNYNNNNNNNYNNN
NNNNNNNYYNNNNNNNNNNYYNNNNNYNNNNNNNNYNYNNNNYNNNNNNN
YNNYNNNNNNNNNNYNNNNNNNYNNNNNNNNNNNNYNNYNYNNYNNNYNN
NNNNNNNNNNNNNNNYNNYNYNNNNNNNNNNNNNNNNNNNNNNYYNNNYN
NNNYNNNNNNNNNYNNNNYNNNNYNNNNNNNYNNYNNNNNNNNYNYNNNN
YNNNYNNNNNNNNNNYNYNNNNNNYNNNYNNNNNNNYYYNNNNNNNYNYN
YNNNNNNNNNYNNNYNNYNNNNNNYNNNYYNYNYNNNYNYNNNNNNNNYN
NNNNNNYNNNNYNNNNNYNNNNYNNNYNYNNNNNNNNYNNNNNNNNNNNY
NNYNNNYNNNYNNNNNNNNYYNNNNNNNNNYNYYNNNNNNNYYNNNNNYN
NYYYYNNNNNYYNNNNYYNNNNYNNNNNYNNNNYNYNNYNNNNNNNNYNN
NNNNNYNNNYNNNNNNNYNYYNNNNNNNNYYNNNYYNNYYNNYNYNNYNN
NNYYNNNNNNNNYNNNNNNNNNYNNNNNNNNNYNYNNNNNNNYNNNNNNN
输出样例
0.5
1.5
3.0
0.0
9.999891558057332
1.7525
49.999985475571165
49.61517659720631
46.23795684631021
50.0
题解
可以看出这题有环,缩点处理一下,更新概率即可。
#include <iostream> #include <fstream> #include <cstdio> #include <cstring> #define MAX_N (50 + 5) using namespace std; int G; int n; double p[MAX_N]; int a[MAX_N][MAX_N]; int dep; int dfn[MAX_N], low[MAX_N]; int vis[MAX_N]; int st[MAX_N], top; int c[MAX_N], tot; double p_new[MAX_N]; int a_new[MAX_N][MAX_N]; int v[MAX_N]; int in[MAX_N]; int q[MAX_N], ft, bk; double ans; void Init(); void Read(); void Update(); void Tarjan(int); void Solve(); int main() { scanf("%d", &G); while(G--) { Init(); Read(); Update(); Solve(); } return 0; } void Init() { memset(dfn, 0, sizeof dfn); memset(low, 0, sizeof low); memset(vis, 0, sizeof vis); memset(a_new, 0, sizeof a_new); memset(v, 0, sizeof v); memset(in, 0, sizeof in); dep = 0; top = 0; tot = 0; ft = 1; bk = 0; ans = 0; return; } void Read() { char s[MAX_N]; scanf("%d", &n); for(register int i = 1; i <= n; ++i) { scanf("%lf", p + i); p[i] /= 100; } for(register int i = 1; i <= n; ++i) { scanf("%s", s + 1); for(register int j = 1; j <= n; ++j) { a[i][j] = (s[j] == 'Y'); } } return; } void Update() { for(register int i = 1; i <= n; ++i) { if(dfn[i]) continue; Tarjan(i); } for(register int i = 1; i <= tot; ++i) { p_new[i] = 1; } for(register int i = 1; i <= n; ++i) { p_new[c[i]] *= (1 - p[i]); } for(register int i = 1; i <= n; ++i) { for(register int j = 1; j <= n; ++j) { a_new[c[i]][c[j]] |= a[i][j]; } } return; } void Tarjan(int x) { dfn[x] = low[x] = ++dep; st[++top] = x; vis[x] = 1; for(register int i = 1; i <= n; ++i) { if(a[x][i]) { if(!dfn[i]) { Tarjan(i); low[x] = min(low[x], low[i]); } else if(vis[i]) { low[x] = min(low[x], dfn[i]); } } } if(dfn[x] == low[x]) { c[x] = ++tot; ++v[tot]; vis[x] = 0; while(st[top] != x) { c[st[top]] = tot; ++v[tot]; vis[st[top--]] = 0; } --top; } return; } void Solve() { int x; for(register int i = 1; i <= tot; ++i) { a_new[i][i] = 0; for(register int j = 1; j <= tot; ++j) { in[i] += a_new[j][i]; } if(!in[i]) { q[++bk] = i; } } while(ft <= bk) { x = q[ft++]; for(register int i = 1; i <= tot; ++i) { if(a_new[x][i]) { --in[i]; p_new[i] *= p_new[x]; if(!in[i]) { q[++bk] = i; } } } } for(register int i = 1; i <= tot; ++i) { ans += v[i] * (1 - p_new[i]); } printf("%lf ", ans); return; }