多么文明的代码却连样例都过不了,42pts求调
  • 板块P1577 切绳子
  • 楼主wky_wsy
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/2/8 14:21
  • 上次更新2025/2/8 16:22:08
查看原帖
多么文明的代码却连样例都过不了,42pts求调
1323415
wky_wsy楼主2025/2/8 14:21
#include <bits/stdc++.h>//尼玛 
#define int long long//尼玛 
using namespace std;//尼玛 
int n,k;//尼玛 
double a[114514];//尼玛 
//double mina=DBL_MAX;//尼玛 
inline bool check(int mid)//尼玛 
{//尼玛 
	int cnt=0;//尼玛 
	for(int i=1;i<=n;i++)//尼玛 
	{//尼玛 
		cnt+=floor(a[i]/mid); //尼玛 
	}//尼玛 
	return cnt>=k;//尼玛 
}//尼玛 
signed main(){//尼玛 
	ios::sync_with_stdio(0);//尼玛 
	cin.tie(0);//尼玛 
	cin>>n>>k;//尼玛 
	double l=0.0,r=0.0;//尼玛 
	for(int i=1;i<=n;i++)//尼玛 
	{//尼玛 
		cin>>a[i];//尼玛 
		r+=a[i];//尼玛 
	}//尼玛 
//尼玛 
	while(r-l>1e-4)//尼玛 
	{//尼玛 
		double mid=(l+r)/2;//尼玛 
		if(check(mid)) l=mid;//尼玛 
		else r=mid;//尼玛 
	}//尼玛 
	printf("%.2lf",l);//尼玛 
	return 0;//尼玛 
}//尼玛

没注释的版本:

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,k;
double a[114514];
//double mina=DBL_MAX;
inline bool check(int mid)  
{   
	int cnt=0;
	for(int i=1;i<=n;i++)
	{
		cnt+=floor(a[i]/mid);
	}
	return cnt>=k;
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin>>n>>k;
	double l=0.0,r=0.0;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		r+=a[i];
	}

	while(r-l>0.001)
	{
		double mid=(l+r)/2;
		if(check(mid)) l=mid;
		else r=mid;
	}
	printf("%.2lf",l);
	return 0; 
}
2025/2/8 14:21
加载中...