UVA - 11021 - Tribles
題目傳送:Tribles
AC代碼:
#include <map>
#include <set>
#include <list>
#include <cmath>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <cctype>
#include <cstdio>
#include <string>
#include <vector>
#include <complex>
#include <cstdlib>
#include <cstring>
#include <fstream>
#include <sstream>
#include <utility>
#include <iostream>
#include <algorithm>
#include <functional>
#define LL long long
#define INF 0x7fffffff
using namespace std;
int N;
int n, k, m;
//因爲每隻麻球都相互獨立,所以只要先求一隻麻球的即可
double P[1005];//P[i]代表一隻麻球生出i只麻球的概率
double f[1005];//f[i]代表每一隻麻球以及他的後代i天后全部死亡的概率,則答案爲f[m]^k
int main() {
scanf("%d", &N);
for(int cas = 1; cas <= N; cas ++) {
scanf("%d %d %d", &n, &k, &m);
for(int i = 0; i < n; i ++) {
scanf("%lf", &P[i]);
}
f[0] = 0;
f[1] = P[0];
for(int i = 2; i <= m; i ++) {
f[i] = 0;
for(int j = 0; j < n; j ++) f[i] += P[j] * pow(f[i-1], j);
}
printf("Case #%d: %.7lf\n", cas, pow(f[m], k));
}
return 0;
}