80分

P1594 护卫队

开long long ```cpp #include<cstdio> #include<cstring> #define max(x,y) ((x)>(y)?(x):(y)) #define min(x,y) ((x)<(y)?(x):(y)) int ws,l,n; long long sum[1001]; int a[1001],b[1001]; int p[1001][1001];//以j开始到i的最慢速度 double f[1001]; int main() { memset(p,127,sizeof(p)); memset(f,127,sizeof(f)); f[0]=0; scanf("%d %d %d",&ws,&l,&n); for(int i=1;i<=n;i++) { scanf("%d %d",&a[i],&b[i]); sum[i]=sum[i-1]+a[i]; p[i][i]=b[i]; for(int j=1;j<i;j++) p[j][i]=min(p[j][i-1],b[i]); } /*for(int i=1;i<=n;i++) { for(int j=i;j<=n;j++) printf("%d ",p[i][j]); printf("\n"); }*/ for(int i=1;i<=n;i++) for(int k=1;k<=i;k++) if(sum[i]-sum[k-1]<=ws) f[i]=min(f[i],f[k-1]+(double)l/p[k][i]*60); printf("%.1lf",f[n]); } ```
by Mark_ZZY @ 2017-06-11 17:14:39


要开long long的
by Rolston @ 2018-05-12 12:05:50


|