关于测试点 #5
查看原帖
关于测试点 #5
1001524
UniqueYou楼主2023/6/2 21:23

只错样例5一个,192.15被输成192.32,是不是精度太低了!

#include <iostream>
using namespace std;
long double n, l, c, v, p[505], d[505], f[505];
int main()
{
	cin >> l >> c >> v >> p[0] >> n;
	for (int i = 1; i <= n; i++)
		cin >> d[i] >> p[i];
	for (int i = 1; i <= n+1; i++)
	{
		f[i] = 300000;
		for (int j = i-1; j >= 0; j--)
		{
			if (c * v >= d[i] - d[j])
			{
				f[i] = min(f[i], f[j] + p[j] * (d[i] - d[j]) / v);
			}
		}
	}
	long double ans = 300000;
	for (int i = n; i >= 0; i--)
	{
		if (c * v >= l - d[i])
		{
			ans = min(ans, f[i] + p[i] * (l - d[i]) / v);
		}
	}
	if (ans == 300000)
		cout << "No Solution";
	else
	{
		printf("%.2Lf", ans);
	}
	
	
	return 0;
}
2023/6/2 21:23
加载中...