社区讨论
关于昨天 CF 的 F题
学术版参与者 3已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @lo236cr7
- 此快照首次捕获于
- 2023/10/23 07:14 2 年前
- 此快照最后确认于
- 2023/11/03 07:35 2 年前
我赛时写了一个比较神奇的做法
CPP#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main() {
int tt;
cin >> tt;
while (tt--) {
int n, k;
cin >> n >> k;
vector<pair<int, int> > a(n);
for (int i = 0; i < n; i++) cin >> a[i].first;
for (int i = 0; i < n; i++) a[i].second = i + 1;
sort(a.begin(), a.end());
vector<pair<int, int> > sk;
for (int i = 0; i < n - 1; i++)
sk.push_back(make_pair(a[i].first ^ a[i + 1].first, i));
sort(sk.begin(), sk.end());
cout << a[sk[0].second].second << " " << a[sk[0].second + 1].second << " " <<
(((1 << k) - 1) ^ (a[sk[0].second].first & a[sk[0].second + 1].first)) << endl;
}
return 0;
}
这个做法是否正确?如何证明?
回复
共 6 条回复,欢迎继续交流。
正在加载回复...