文章

8

粉丝

0

获赞

1

访问

1.6k

头像
基建高手 题解:80%通过是什么问题
P5274 华东师范大学2024年机试题
发布于2026年1月4日 12:46
阅读数 72

本题oj数据有误,

1 1000000000
1000000000

该样例满足"对 100% 的数据 1≤n≤10^5,1≤k≤10^9,1≤ai≤10^9",但是期望结果是1000000000000000000  (1e18),但是oj认为的ac代码实际结果是1000000000 (1e9)

这显然不对,因为他忽略了结果可能超出int的范围,这里带上ac代码

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
#define max(a, b) ((a) > (b) ? (a) : (b))
#define min(a, b) ((a) < (b) ? (a) : (b))
using namespace std;
void solve()
{
	int n,k;
	cin >>n>>k;
	vector<int >a(n);
	for (int i=0;i<n;i++)
	{
		cin >>a[i];
	}


	auto ok=[&](int x)->int
	{
		int res=0;
		for (int i=0;i<n;i++)
		{
			if(a[i]==0) continue;
			res+=x/a[i];
		}
		if(res>=k)return 1;
		else return 0;
	};

	int ll=0;
	int rr=1e18;

	while (ll<rr)
	{
		int mid = ll + (rr - ll) / 2;
		if(ok(mid))rr=mid;
		else ll=mid+1;
	}

	cout <<ll<<endl;
}
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	// int t;cin >&g...
登录查看完整内容


登录后发布评论

1 条评论
admin
2026年1月4日 16:59

感谢反馈,数据已更新~

赞(0)
回复给: