coj 1342: Double

来源:互联网 发布:淘宝上的台式机能买吗 编辑:程序博客网 时间:2024/04/30 06:08
#include <stdio.h>
1342
double p[110][3];
int main()
{
    int n, m, x, t=0;
    while(scanf("%d%d", &m, &n) != EOF)
    {
        p[1][0] = p[1][1] = p[1][2] = 0;
        for(int i = 0; i < m; i ++)
        {
            scanf("%d", &x);
            p[1][x%3] += 1;
        }
        p[1][0] /= m, p[1][1] /= m, p[1][2] /= m;
        for(int i = 2; i <= n; i ++)
        {
            p[i][0]=p[i-1][0] * p[1][0] + p[i-1][1] * p[1][2] + p[i-1][2] * p[1][1];
            p[i][1]=p[i-1][0] * p[1][1] + p[i-1][1] * p[1][0] + p[i-1][2] * p[1][2];
            p[i][2]=p[i-1][0] * p[1][2] + p[i-1][1] * p[1][1] + p[i-1][2] * p[1][0];
        }
        printf("Case %d: %.8f\n", ++t, p[n][0]);
    }
    return 0;
}
0 0