专栏文章
题解:CF1991C Absolute Zero
CF1991C题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miqa0o8p
- 此快照首次捕获于
- 2025/12/04 01:24 3 个月前
- 此快照最后确认于
- 2025/12/04 01:24 3 个月前
既然替换后的数是与所选的数的差,那最佳选择肯定是最大值和最小值的平均值。时间复杂度 。
CPPconst ll N = 2e5 + 10, MAX = 40, inf = 3e9;
ll Q, n, a[N];
vector<ll> ans;
int main() {
sync_off;
cin >> Q;
count(Q) {
ans.clear();
cin >> n;
ll min1 = inf, max1 = -inf, cnt = 0;
rep(i, 1, n) {
cin >> a[i];
update(min1, a[i], min);
update(max1, a[i], max);
}
while (1) {
if (max1 == 0) {
cout << ans.size() << '\n';
if (ans.empty() == 0) {
for (ll i : ans)
cout << i << ' ';
}
endl;
break;
} else if (cnt == MAX) {
cout << "-1\n";
break;
} else {
ll x = (min1 + max1) / 2;
ans.pb(x);
min1 = inf;
max1 = -inf;
cnt++;
rep(i, 1, n) {
a[i] = abs(a[i] - x);
update(min1, a[i], min);
update(max1, a[i], max);
}
}
}
}
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...