hdu 4089 Activation (概率dp 手动消元)(二)
pedef long long ll; using namespace std; int n,m,k; double dp[maxn][maxn],p1,p2,p3,p4; void solve() { int i,j; double p21=p2/(1-p1),p31=p3/(1-p1),p41=p4/(1-p1),pp,tt; dp[1][1]=p4/(1-p1-p2); for(i=2;i<=n;i++) { pp=1; tt=0; for(j=2;j<=k&&j<=i;j++) { pp*=p21; tt*=p21; tt+=p31*dp[i-1][j-1]+p41; } for(j=k+1;j<=i;j++) { pp*=p21; tt*=p21; tt+=p31*dp[i-1][j-1]; } dp[i][i]=(tt*(1-p1)+pp*p4)/(1-p1-pp*p2); dp[i][1]=p21*dp[i][i]+p41; for(j=2;j<=k&&j