求hack
查看原帖
求hack
894358
binomial楼主2023/5/30 20:11

rt.蒟蒻80卡住了,第一个点过不去

#include <bits/stdc++.h>
using namespace std;
double a,b,c,e,dp[52],ans=10000000;
int d;
struct l{
	double j,y;
}s[52];
int main(){
	cin>>a>>b>>c>>e>>d;
	for(int i=1;i<=d;i++){
		cin>>s[i].j>>s[i].y;
		dp[i]=100000000;
	}
	dp[0]=e*100;
	for(int i=1;i<=d;i++){
		for(int j=i-1;j>=0;j--){
			double ls=s[i].j-s[j].j;
			if(ls>b*c){
				break;
			}
			else{
				dp[i]=min(dp[i],dp[j]+ls/c*s[i].y);
		//		cout<<dp[j]+ls/c*s[i].y<<" "<<dp[i]<<" "<<i<<" "<<j<<endl;
			}
//			cout<<dp[i]<<' '<<i<<" "<<j<<endl;
		}
		dp[i]+=200;
	}
	for(int i=1;i<=d;i++){
//		cout<<dp[i]<<endl;
		if(a-s[i].j<=b*c){
			ans=min(ans,dp[i]);
		}
	}
	printf("%.2lf",ans/100);
}
2023/5/30 20:11
加载中...