CSP 2023 J T2 类似题 精度问题求调
查看原帖
CSP 2023 J T2 类似题 精度问题求调
552286
流光萤影楼主2023/10/27 21:51
#include<bits/stdc++.h>
using namespace std;double D,c,d,ans = 1e9,di[15],p[15];int n;
void dfs(int now,double el,double minn,double anss)
{
	if(anss >= ans) return;
	if(!(now^(n+1)))
	{
		ans = anss;
		return;
	}
	if(minn > p[now]) el = 0,minn = p[now];
	double tmp = (di[now+1]-di[now])/d;
	if(el+tmp <= c) dfs(now+1,el+tmp,minn,anss+minn*tmp);
	dfs(now+1,tmp,p[now],anss+p[now]*tmp);
	return;
}
int main()
{
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> D >> c >> d >> p[0] >> n;di[n+1] = D;
	for(int i(1);i <= n;++i)
	{
		cin >> di[i] >> p[i];
		if((di[i]-di[i-1])/d > c)
		{
			cout << "No Solution";
			return 0;
		}
	}
	dfs(0,0,p[0],0);printf("%.2f",ans);
} 

#5 WA

2023/10/27 21:51
加载中...