总是WA倒数第二个点
  • 板块P1577 切绳子
  • 楼主jjw871996
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/8/2 21:44
  • 上次更新2023/11/4 12:11:37
查看原帖
总是WA倒数第二个点
533400
jjw871996楼主2021/8/2 21:44

如标题,

倒数第二个点答案是0.65

我输出的是0.87

代码如下:

#include <bits/stdc++.h>
using namespace std;
int n,k;
double a[10005];
double l=1,mid,r;
//double maxn (double x,double y){return x>y?x:y;}
double check(double m){
	int cnt=0;
	for (int i=1;i<=n;i++)
		cnt+=a[i]/m;
	return cnt>=k;
}
int main (){
	double sum=0;
	scanf ("%d %d",&n,&k);
	for (int i=1;i<=n;i++) scanf ("%lf",&a[i]),r=max(a[i],r),sum+=a[i];
	if (k>sum){printf ("%0.2lf",floor(sum/k*100)/100.);exit(0);}
	r++;
	while (r-l>=1e-3){
		mid=(l+r)/2.0;
		if (check(mid)) l=mid;
		else r=mid;
	}	
	printf ("%.2lf",l);
}
2021/8/2 21:44
加载中...