标签:
做法:那么这个点的期望dp[i] = dp[i +1] /6 + dp[i + 2] / 6 + dp[i + 3] /6 + dp[i + 4] / 6 + dp[i + 5] / 6 + dp[i + 6] / 6 + p[i];
对于小于6的点另做处理
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<cctype> #include<queue> #include<stack> #include<vector> #include<algorithm> using namespace std; typedef long long LL; #define N 210 #define INF 0x3f3f3f3f double a[N], dp[N]; int main() { int T, n, cas=1; scanf("%d", &T); while(T--) { scanf("%d", &n); memset(dp, 0, sizeof(dp)); for(int i=0; i<n; i++) scanf("%lf", &a[i]); dp[n-1]=a[n-1]; for(int i=n-2; i>=0; i--) { dp[i]=a[i]; int t=6; if(n-1-i<6) t=n-1-i; for(int j=1; j<=t; j++) dp[i]+=dp[i+j]/t; } printf("Case %d: %.10f\n", cas++, dp[0]); } return 0 ; }
标签:
原文地址:http://www.cnblogs.com/9968jie/p/5789704.html