$noip$ 欢乐赛真是欢乐,除了不欢乐的方面以外我都很欢乐。
T1
鸡汤题目,故意输对后面的胜率又没有影响,为什么要故意输呢?
所以第二个决策是凑字用的,这题就是朴素递推概率,最后乘结果权值计算期望。
1 #include<cctype> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<cstring> 5 #include<iostream> 6 #include<algorithm> 7 using namespace std; 8 inline int read(){ 9 int x=0; bool f=1; char c=getchar(); 10 for(;!isdigit(c);c=getchar()) if(c=='-') f=0; 11 for(; isdigit(c);c=getchar()) x=(x<<3)+(x<<1)+(c^'0'); 12 if(f) return x; 13 return 0-x; 14 } 15 #define N 1001 16 int n; 17 double p[N][N],f[N][N]; 18 int main(){ 19 freopen("game.in","r",stdin); 20 freopen("game.out","w",stdout); 21 n=read(); 22 int i,j; 23 f[0][0]=1; 24 for(i=1;i<=n;++i){ 25 cin>>p[i][j]; f[i][0]=f[i-1][0]*(1-p[i][j]); 26 for(j=1;j<i;++j){ 27 cin>>p[i][j]; 28 f[i][j]=f[i-1][j-1]*p[i][j-1]+f[i-1][j]*(1-p[i][j]); 29 } 30 f[i][j]=f[i-1][j-1]*p[i][j-1]; 31 } 32 double ans=0; 33 for(i=1;i<=n;++i) ans+=f[n][i]*i; 34 printf("%.2f",ans); 35 return 0; 36 }