看到十三年后的回复有什么感觉,你一定工作了,我才上大一,这个题看了好几个小时
#include<stdio.h>
#include<math.h>
double sum[1000];
double aa[20][3]={0};
double T[20];
double bb[20][3]={0};
int y=1;
double yy[1000]={0};
double s,t;
int a,b;
double zz(double x1,double y1,double x2,double y2)
{
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
void abc(int a1,int b1,int c)
{if(a1==b1+1)
{for(int mm=a+1;mm<=b-1;mm++)
yy[y]+=zz(sum[4*(mm-a)+1],sum[4*(mm-a)+2],sum[4*(mm-a)+3],sum[4*(mm-a)+4])*T[mm];
for(int mm=a+1;mm<=b;mm++)
yy[y]+=zz(sum[4*(mm-a)-1],sum[4*(mm-a)],sum[4*(mm-a)+1],sum[4*(mm-a)+2])*t;
y++;
}else{for(int i=1;i<=3;i++)
{
if(c==0){sum[4*(a1-a)+1]=aa[a1][i];sum[4*(a1-a)+2]=bb[a1][i];abc(a1,b1,1);}
if(c==1){sum[4*(a1-a)+3]=aa[a1][i];sum[4*(a1-a)+4]=bb[a1][i];abc(a1+1,b1,0);}
}}
}
int main ()
{
scanf("%lf%lf%d%d",&s,&t,&a,&b);
for(int i=1;i<=s;i++)
{for(int k=1;k<=3;k++)
scanf("%lf%lf",&aa[i][k],&bb[i][k]);
scanf("%lf",&T[i]);}
abc(a,b,0);
int zz=1;
for(int tt=1;tt<=pow(3.0,(2*(b-a)-1));tt++)
if(yy[zz]>yy[tt])zz=tt;
printf("%lf\n",yy[zz]);
return 0;
}