洛谷 #1654. OSU!

題意

爲什麼不能叫UNO

每個狀態爲0/1,問連續1的長度的立方和的期望值

題解

期望Dp,維護1維、2維、3維期望值

調試記錄

3維要算上爲0的期望

#include <cstdio>
#define maxn 100005

using namespace std;

double cnt[4][maxn], chance[maxn];
int n;

int main(){
	scanf("%d", &n);
	
	for (int i = 1; i <= n; i++) scanf("%lf", &chance[i]);
	
	for (int i = 1; i <= n; i++){
		cnt[1][i] = (cnt[1][i - 1] + 1) * chance[i];
		cnt[2][i] = (cnt[2][i - 1] + 2 * cnt[1][i - 1] + 1) * chance[i];
		cnt[3][i] = (cnt[3][i - 1] + 3 * cnt[2][i - 1] + 3 * cnt[1][i - 1] + 1) * chance[i] + (1 - chance[i]) * cnt[3][i - 1];
	}
	printf("%.1lf\n", cnt[3][n]);
	
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章