代码哪错了,和题解思路一样,求调
  • 板块CF489E Hiking
  • 楼主C_zhai
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/15 20:44
  • 上次更新2024/12/16 12:51:47
查看原帖
代码哪错了,和题解思路一样,求调
938026
C_zhai楼主2024/12/15 20:44
#include<bits/stdc++.h>
using namespace std;
int n,l,from[1010];
double dp[1010];
struct N{
	int a,b;
};
N date[1010];
bool check(int x){
	for(int i=1;i<=n;i++){
		for(int j=0;j<i;j++){
			int t=dp[j]+sqrt(date[i].b*x-sqrt(abs(date[i].a-date[j].a-l)));
			if(t>dp[i]){
				dp[i]=t;
				from[i]=j;
			}
		}
	}
	return dp[n]>=0;
}
void solve(){
	int ll=0,r=1e6;
	while(abs(r-ll)>1e-9){
		double mid=(ll+r)/2;
		if(check(mid))r=mid;
		else ll=mid;
	}

}
void print(int x){
	if(from[x]!=0){
		print(from[x]);
	}
	printf("%d ",x);
	
}
int main()
{
	scanf("%d%d",&n,&l);
	for(int i=1;i<=n;i++)scanf("%d%d",&date[i].a,&date[i].b);
	solve();
	print(n);
	return 0;
}
2024/12/15 20:44
加载中...