UVALive 6620 Josephina and RPG(概率DP)

来源:互联网 发布:node express restful 编辑:程序博客网 时间:2024/06/06 09:33

思路:简单的概率DP,题目连转移方向都给你规定好了...见代码


#include<iostream>#include<cstdio>#include<cstring>using namespace std;double dp[10010][150];double p[150][150];int a[15000];int main(){int M;while(scanf("%d",&M)!=EOF){memset(dp,0,sizeof(dp));memset(p,0,sizeof(p));        memset(a,0,sizeof(a));        int n = (M-1)*M*(M-2)/6;for(int i = 0;i<n;i++)for(int j = 0;j<n;j++)scanf("%lf",&p[i][j]);int m;scanf("%d",&m);for(int i = 1;i<=m;i++)scanf("%d",&a[i]);for(int i = 0;i<=n;i++)dp[0][i]=1;for(int i = 1;i<=m;i++)for(int j = 0;j<n;j++){dp[i][j]=max(dp[i-1][j]*p[j][a[i]],dp[i][j]);dp[i][a[i]]=max(dp[i-1][j]*p[j][a[i]],dp[i][a[i]]);}double ans = 0;for(int i = 0;i<n;i++)ans = max(ans,dp[m][i]);printf("%.6lf\n",ans);}}


0 0
原创粉丝点击