【题解】找玩具

题目描述

  在游戏开始之前,游戏大师在房间的某些地方隐藏了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\n", ans);
    return;
}
参考程序

 

转载于:https://www.cnblogs.com/kcn999/p/10648352.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值