hdu 4800 Josephina and RPG

时间:2023-03-09 08:04:10
hdu 4800 Josephina and RPG

简单dp

#include<cstdio>
#define maxn 10005
#include<cstring>
#include<algorithm>
using namespace std; double dp[][maxn];
double t[][];
int num[maxn]; int main()
{
int n,m;
while(scanf("%d",&m)!=EOF)
{
m=(m*(m-)*(m-)/);
for(int i=; i<m; i++)
{
for(int j=; j<m; j++)
{
scanf("%lf",&t[i][j]);
}
dp[i][]=;
}
scanf("%d",&n);
for(int i=; i<=n; i++)
{
scanf("%d",&num[i]);
}
double ma1=,ma2;
for(int j=; j<=n; j++) //第j个敌人被第i个team打败;
{
ma2=-1.0;
for(int i=; i<m; i++)
{
if(i==num[j-])
dp[i][j]=ma1*t[num[j-]][num[j]];
else dp[i][j]=dp[i][j-]*t[i][num[j]];
if(dp[i][j]>ma2)ma2=dp[i][j];
}
ma1=ma2;
}
ma1=;
for(int i=; i<m; i++)
if(ma1<dp[i][n])ma1=dp[i][n];
printf("%lf\n",ma1);
}
return ;
}