UVA 11021 C - Tribles(概率DP)
2013-11-04 11:02
405 查看
记忆化就可以搞定,比赛里都没做出来,真的是态度有问题啊。。。
#include <iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; double p[1001]; double dp[1001]; int flag[1001],n; double po(double a,int k) { double b = 1.0; while(k) { if(k&1) b = a*b; a = a*a; k = k/2; } return b; } double dfs(int step) { int i; if(flag[step]) return dp[step]; if(step == 1) return p[0]; double ans = p[0],temp; for(i = 1;i < n;i ++) { temp = p[i]; temp *= po(dfs(step-1),i); ans += temp; } flag[step] = 1; return dp[step] = ans; } int main() { int t,cas = 1,i,m,k; double ans,temp; scanf("%d",&t); while(t--) { scanf("%d%d%d",&n,&k,&m); memset(flag,0,sizeof(flag)); for(i = 0;i < n;i ++) scanf("%lf",&p[i]); if(m == 0) { printf("Case #%d: %.7lf\n",cas++,0.0); continue; } ans = 1; temp = dfs(m); for(i = 0;i < k;i ++) ans *= temp; printf("Case #%d: %.7lf\n",cas++,ans); } return 0; }
相关文章推荐
- UVa 11021 Tribles (概率DP + 组合数学)
- UVA11021 Tribles[离散概率 DP]
- UVa 11021 - Tribles (概率DP)
- UVa 11021 Tribles(概率DP)
- UVA - 11021 Tribles 概率dp
- 概率dp - UVA 11021 Tribles
- UVA 11021 Tribles (概率dp)
- 概率dp - UVA 11021 Tribles
- Uva 11021-Tribles(概率+递推)
- uva 11021 Tribles (概率,递推)
- UVA - 11021 Tribles (递推+概率)
- UVA 11021 - Tribles(概率)
- UVa 11021 (概率 递推) Tribles
- UVA - 11021 - Tribles 递推概率
- UVA 11021 Tribles(递推+概率)
- uva 11021 Tribles 【概率】
- UVA 11021(概率DP)
- 概率DP,递推(麻球繁殖,UVA 11021)
- uva 11021 Tribles(数学:概率+递推)
- uva 11021 Tribbles 麻球繁衍 概率dp