377. 护卫队
★☆ 输入文件:convoy.in
输出文件:convoy.out
简单对比时间限制:1 s 内存限制:128 MB
#include <iostream>
#include <cstdio>
using namespace std;
#define MAX_N 1000
#define INF 9999999999999999
long long w,s,n;
double dp[MAX_N];
long long we[MAX_N],ve[MAX_N];
int main()
{
freopen("convoy.in","r",stdin);
freopen("convoy.out","w",stdout);
scanf("%ld%ld%ld",&w,&s,&n);
for(int i=1;i<=n;i++)
scanf("%ld%ld",&we[i],&ve[i]);
for(int i=1;i<=n;i++)
{
dp[i]=INF;
long long sumwe=0;
double minv=INF;
for(int j=i;j>=1 && sumwe+we[j]<=w;j--)
{
sumwe+=we[j];
minv=min(minv,ve[j]/60.0);
dp[i]=min(dp[i],dp[j-1]+s/minv);
}
}
printf("%.1lf\n",dp[n]);
return 0;
}