社区讨论

P4058 [Code+#1] 木材 90分

灌水区参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@m2hlchs5
此快照首次捕获于
2024/10/20 20:55
去年
此快照最后确认于
2025/11/04 16:40
4 个月前
查看原帖
求加团: https://www.luogu.com.cn/team/90259#main
CPP
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 2e5 + 5;
unsigned long long ans, s, L, h[MAXN], a[MAXN];
int n;
bool check(unsigned long long x)
{
	unsigned long long sum = 0;
	for(int i = 1; i <= n; i++)
	{
		unsigned long long c = h[i] + a[i] * x;
		if(c >= L) sum += c;
	}
	return sum >= s;
}
int main()
{
	cin >> n >> s >> L;
	for(int i = 1; i <= n; i++) cin >> h[i];
	for(int i = 1; i <= n; i++) cin >> a[i];
	if(s == 0)
	{
		cout << 0;
		return 0;
	}
	unsigned long long l = 0, r = 1e18;
	while(l <= r)
	{
		unsigned long long mid = (l + r) >> 1;
		if(check(mid))
		{
			ans = mid;
			r = mid - 1;
		}
		else l = mid + 1;
	}
	cout << ans;
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...