1.清空缓存输入流
2.测试数据一定要打对!
3.最后输入的0后无换行!
测试数据
1
1 1.57556 1.10521 0.691426 7.25005
0.634602 1 0.701196 0.43856 4.59847
0.904750 1.42647 1 0.625627 6.55957
1.44616 2.28059 1.59840 1 10.4843
0.137931 0.217555 0.152449 0.0953772 1
3 2 4 5 20.00
1 3 100.00
6 2 3 4 2 4 3 120.03
0
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std;
float a[10][10];
float f[10][10];
int s[999]={0};
int main()
{
memset(a,0,sizeof(a));
memset(f,0,sizeof(f));
int i,j,n=0,c;
float d;
cin>>c;
while(c--){
for(i=1;i<=5;i++){
for(j=1;j<=5;j++){
cin>>a[i][j];
}
}
while(cin>>n&&n){
s[0]=1;
d=0;
for(i=1;i<=n;i++){
cin>>s[i];
}
cin>>d;
d=(int((d*a[1][s[1]]+0.005)*100.00))/100.00;
for(i=1;i<n;i++){
d=(int((d*a[s[i]][s[i+1]]+0.005)*100.00))/100.00;
}
printf("%.2f\n",(int((d*a[s[n]][1]+0.005)*100.00))/100.00);
}
if (c)
cout<<endl;
}
return 0;
}