●CodeForces 518D Ilya and Escalator
题链:
http://codeforces.com/problemset/problem/518/D
题解:
期望dp。
定义dp[t][i]表示在第t秒开始之前,已经有了i个人在电梯上,之后期望能有多少人上电梯。
转移:
dp[t][i]=(1-P)*dp[t+1][i]+P*(dp[t+1][i+1]+1)
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #include<bits/stdc++.h> #define MAXN 2005 using namespace std; int N,T; double P,dp[MAXN][MAXN]; int main(){ ios::sync_with_stdio(0); cin>>N>>P>>T; for ( int t=T;t>=1;t--) for ( int i=0;i<N;i++) dp[t][i]=(1-P)*dp[t+1][i]+P*(dp[t+1][i+1]+1); cout<<fixed<<setprecision(6)<<dp[1][0]<<endl; return 0; } |
Do not go gentle into that good night.
Rage, rage against the dying of the light.
————Dylan Thomas
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步