CF518D Ilya and Escalator

这个咋弄啊?qwq

nn 个人排成一列,,, 每秒中队伍最前面的人pp 的概率走上电梯( 一旦走上就不会下电梯), 或者有1p1-p 的概率不动

问你TT 秒过后,,, 在电梯上的人的数量的期望...

然后咋做呢?

直接DP,记f[i][j]表示第i秒有j个人的期望

转移直接转移就做完了

然后code:

#include<iostream>
#include<cstdio>
#include<cstring>
const int MAXN = 2e3 + 7;
int n, m;
double p;
double dp[MAXN][MAXN];

int main() {
	scanf("%d", &n);
	scanf("%lf", &p);
	scanf("%d", &m);
	for(int i = 1; i <= n; ++i) {
		for(int j = 1; j <= m; ++j) {
			dp[i][j] = (1 - p) * dp[i][j - 1] + p * (dp[i - 1][j - 1] + 1);
		}
	}
	printf("%lf\n", dp[n][m]);
	return 0;
}

你注定要毁灭这个你活了一辈子的世界,这是你一生的悲哀