【概率与期望】POJ 2151 Check the difficulty of problems

通道:http://poj.org/problem?id=2151

题意:有M道问题,T支队伍,然后给出p[i][j]表示i队伍解决j问题的概率,问每个队解决问题超过1道且冠军队伍解题数为N的概率。

思路:dp[i][j][k]:第i支队伍在前j道解决了k道题目的概率。转移为dp[i][j][k]=p[i][j]*dp[i][j-1][k-1]+(1-p[i][j])*dp[i][j-1][k]。然后设s[i][j]为第i支队伍解决不超过j道题目的概率,那么s[i][j]=sum(dp[i][M][k]){0<=k<=j},那么对于第i支对于,s[i][N]-S[i][0]表示至少解出1道,s[i][N-1]-s[i][0]表示解决题数为1~n的概率,两式相减就是结果。

代码:https://github.com/Mithril0rd/Rojo/blob/master/poj2151.cpp

TAG:概率dp,比较经典

posted @ 2014-10-27 23:55  mithrilhan  阅读(132)  评论(0编辑  收藏  举报