求助!
查看原帖
求助!
352674
liu_yu_hang楼主2021/3/21 16:18
#include<bits/stdc++.h>
using namespace std;
double f[1005],t[1005],best;
int n,maxw,v,st,spd,speed,sum[1005];
void init() {
	for(int i=1; i<=n; i++) {
		cin>>v>>spd;
		sum[i]=sum[i-1]+v;
		t[i]=st*60.0/spd;
	}
}
void work() {
	f[0]=0;
	for(int i=1;i<=n;i++) {
		speed=t[i];
		best=f[i-1]+speed;
		for(int j=i;j>=0;j--) {
			if((sum[i]-sum[j-1]) <=maxw) {
				if(t[j]>speed) speed=t[j];
				best=min(best,f[j-1]+speed);
			}
			else 
				break;
			f[i]=best;
		}
	}
}
int main() {
	cin>>maxw>>st>>n;
	init();	
	work();
	printf("%0.1lf",best);
	return 0;
}

3个点过了#1,#4,#7

2021/3/21 16:18
加载中...