为什么会WA掉第一个点呢
查看原帖
为什么会WA掉第一个点呢
530180
KingPowers楼主2022/6/1 19:47

RT,以下为代码

#include<bits/stdc++.h>
#define INF 1e-9
#define fir first
#define sec second
#define inl inline
#define reg register
#define int long long
#define VI vector<int>
#define MII map<int,int>
#define PII pair<int,int>
#define PRT_Q priority_queue
using namespace std;
int n,m,v[205],c[205];
double t[205],ans,l=1,r;
bool cmp(double a,double b){return a>b;}
signed main()
{
 	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>n>>m;
	/*if(n==4&&m==2)
	{
		cout<<0.769;
		return 0;
	}*/
	for(int i=1;i<=n;i++)
		cin>>v[i];
	for(int i=1;i<=n;i++)
		cin>>c[i],r=max(r,v[i]*1.0/c[i]);
	while(fabs(r-l)>INF)
	{
		double mid=(l+r)/2.0,ans=0;
		for(int i=1;i<=n;i++)
			t[i]=v[i]-c[i]*mid;
		sort(t+1,t+n+1,cmp);
		for(int i=1;i<=m;i++)
			ans+=t[i];
		if(ans>=0)
			l=mid;
		else
			r=mid;
	}
	cout<<fixed<<setprecision(3)<<l;
}
2022/6/1 19:47
加载中...