38. CF-Orac and Medians
官方题解有严谨的证明。这里只写个思路。
- 显然 必须存在于原数组中
- 只要有连续两个 ,就可以完成任务
- 小的数容易同化大的数
- 考虑相对于 的大小关系
- 的附近存在不小于它的数就可以了
- 考虑间距,要让中位数变大,必须是 的数多, 的数少的情况
- 那么必须存在一对 的数,它们的间距不超过
#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 5;
void solve() {
int n, k;
cin >> n >> k;
vector<int> a(n);
for (auto& i : a) cin >> i;
bool ok = false;
for (auto& i : a) {
ok |= (i == k);
i = (i >= k);
}
if (!ok) {
cout << "no\n";
return;
}
ok = (n == 1);
for (int i = 0; i + 1 < n; ++i) {
if (a[i] && a[i + 1])
ok = true;
}
for (int i = 0; i + 2 < n; ++i) {
if (a[i] && a[i + 2])
ok = true;
}
cout << (ok ? "yes\n" : "no\n");
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T = 1;
cin >> T;
while (T--) {
solve();
}
double a = 3400, b = 127000;
cout << a / b << endl;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
2021-03-12 P3966 [TJOI2013]单词