题解:
状态表示:令dp(i,j)表示当前已经选到了第i个端点,且已经选了j个速度所用的最短时间。
状态转移:对于当前端点,直接枚举最后一次是由哪一个端点的速度转移过来的。
AC代码:
#includeusing namespace std; const int N=510; int n,m,k; int d[N],v[N],dp[N][N]; main(){ cin>>n>>m>>k; for(int i=1;i<=n;i++)cin>>d[i]; for(int i=1;i<=n;i++)cin>>v[i]; d[++n]=m; memset(dp,0x3f,sizeof dp); dp[1][1]=0; for(int i=2;i<=n;i++) for(int j=1;j<=i;j++) for(int l=1;l



