#include <bits/stdc++.h>
#define maxn 230
using namespace std;
int n, r;
double f[maxn][maxn], p[maxn], v[maxn];
int main(){
#ifndef ONLINE_JUDGE
freopen("arthur.in", "r", stdin);
freopen("arthur.out", "w", stdout);
#endif
int test;
scanf("%d", &test);
while(test --){
scanf("%d%d", &n, &r);
memset(f, 0, sizeof f);
double ans = 0;
for(int i = 1; i <= n; i ++)
scanf("%lf%lf", &p[i], &v[i]);
f[0][r] = 1;
for(int i = 1; i <= n; i ++)
for(int j = 1; j <= r; j ++){
f[i][j] = f[i-1][j] * pow(1-p[i-1], j) + f[i-1][j+1] * (1 - pow(1-p[i-1], j+1));
ans += f[i][j] * (1 - pow(1-p[i], j)) * v[i];
}
printf("%.10lf\n", ans);
}
return 0;
}
[HNOI2015]Arthur
最新推荐文章于 2018-08-10 22:17:07 发布