为什么二分的r要取到1e10??
  • 板块P3743 kotori的设备
  • 楼主卷王慢即快
  • 当前回复9
  • 已保存回复9
  • 发布时间2022/6/12 17:44
  • 上次更新2023/10/27 23:25:53
查看原帖
为什么二分的r要取到1e10??
494699
卷王慢即快楼主2022/6/12 17:44
#include<bits/stdc++.h>
using namespace std; int a[100001],b[100001];
double n,k,s=0;
#define eps 1e-6
inline bool check(double x)
{
	double sum=0;
	for(int i=1;i<=n;i++)
		if(a[i]*x>b[i]) sum+=a[i]*x-b[i];
	return sum<=x*k;
}
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++) cin>>a[i]>>b[i],s+=a[i];
	if(s<=k) {cout<<"-1"; return 0;}
	double l=0,r=1e10,mid;
	while(r-l>eps)
	{
		mid=(l+r)/2;
		if(check(mid)) l=mid;
		else r=mid;
	}
	printf("%.10lf",l);
	return 0;
}

改成1e91e9WAWA了第19个点

2022/6/12 17:44
加载中...