60分求助
  • 板块P1542 包裹快递
  • 楼主Elgo87
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/9/21 07:47
  • 上次更新2023/11/4 06:00:12
查看原帖
60分求助
393864
Elgo87楼主2021/9/21 07:47

由于最近比较颓,所以下载数据次数都用光了,请神犇们帮我康康,是不是有什么地方我没想到的,还是哪里写错了的,谢谢啦~

代码:

#include<bits/stdc++.h>
using namespace std;

int x[200005],y[200005],s[200005],n;


bool check(double v)
{
	double time=0;
	for(int i=0; i<n; i++)
	{
		time += s[i]/v;
		if(time<x[i]) {time=x[i]; continue;}
		if(time>y[i]) return false;
	}
	return true;
}


int main()
{
	cin>>n;
	for(int i=0; i<n; i++)  cin>>x[i]>>y[i]>>s[i];
	
	double l=0,r=n-1;
	while(l<r-0.0001)
	{
		double mid=(l+r)/2;
		if(check(mid)) r=mid;
		else l=mid;
	}
	printf("%.2lf",l);
    return 0;
}

2021/9/21 07:47
加载中...