acgo题库
  • 首页
  • 题库
  • 学习
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情提交记录(0)
  • 二分+双指针

    二分结合双指针贪心匹配。 二分:在可能的最大丑陋程度(0 到 2e9)上二分,寻找最小可行值 d。 双指针检查:对手套尺码排序后,使用双指针从左到右匹配左手和右手,确保每个左手能在 [li - d, li + d] 内找到一个右手,并推进指针。如果能匹配 min(n, m) 对,则 d 可行。

    userId_undefined

    tgc

    7月全勤卷王时间刺客倔强青铜
    39阅读
    0回复
    1点赞
  • 比赛通过

    userId_undefined

    芜氪·初景

    倔强青铜出道萌新时间刺客空间掌握者时空双修者
    45阅读
    0回复
    0点赞
  • xxx

    #include <bits/stdc++.h> using namespace std; bool check(vector<int>& a, vector<int>& b, int mid) { int cnt = 0; int i = 0, j = 0; while (i < a.size() && j < b.size()) { if (abs(a[i] - b[j]) <= mid) { cnt++; i++; j++; } else if (a[i] < b[j]) i++; else j++; } return cnt == min(a.size(), b.size()); } int main() { int n, m; cin >> n >> m; vector<int> a(n), b(m); for (int i = 0; i < n; i++) cin >> a[i]; for (int i = 0; i < m; i++) cin >> b[i]; sort(a.begin(), a.end()); sort(b.begin(), b.end()); int left = 0, right = max(a.back(), b.back()) - min(a[0], b[0]); while (left < right) { int mid = left + (right - left) / 2; if (check(a, b, mid)) right = mid; else left = mid + 1; } cout << left; return 0; }

    userId_undefined

    随便打打

    倔强青铜字符串·魔法使出道萌新贪心·贪心尝试者数组·数组操作员递归·套娃学徒
    35阅读
    0回复
    1点赞
  • 题解

    #include <bits/stdc++.h> using namespace std; int n,m; int a[100005],b[100005]; bool check(int mid){ } int main(){ }

    userId_undefined

    该账号不存在

    7月全勤卷王时间刺客空间掌握者时空双修者快乐小狗
    2阅读
    0回复
    0点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页