社区讨论

啥音

P14955元素选择参与者 2已保存回复 1

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@mjz8pr4g
此快照首次捕获于
2026/01/04 12:37
2 个月前
此快照最后确认于
2026/01/04 13:04
2 个月前
查看原帖
CPP
#include <bits/stdc++.h>
#define int long long 

using namespace std;

int T, n, m, k, ans, it;

int f(int x) {
	int d = n / x;
	int p = d + (n % x > 0);
	if(p > m) return k + 1;
	return d * (d - 1) / 2 * x + n % x * (p - 1);
}

int find() {
	int l = 1, r = min(it, n), s, mid;
	while(l <= r) {
		mid = l + r >> 1;
		if(f(mid) > k) l = mid + 1;
		else {
			s = mid;
			r = mid - 1;
		}
	}
	return s;
}

void solve() {
	ans = 0; 
	cin >> n >> m >> k;
	it = n;
	while(n > 1) {
		it = find();
//		cout << it << "?\n"; 
		if(it == n) {
			puts("-1");
			return ;
		}
		n = it;
		ans ++; 
	}
	cout << ans << "\n";
}

signed main() {
	cin >> T;
	while(T --) solve();
	return 0;
}
时间复杂度是 O(Tlog2n)O(Tlog^2n) ,但是: 炸了

回复

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

正在加载回复...