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

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 比赛通过

    userId_undefined

    芜氪·白狼连队

    出道萌新时间刺客空间掌握者时空双修者倔强青铜
    36阅读
    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

    随便打打

    时间刺客模拟·模拟练习生
    29阅读
    0回复
    0点赞
  • 二分+双指针

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

    userId_undefined

    平平无奇网络小天才

    7月全勤卷王倔强青铜时间刺客
    22阅读
    1回复
    0点赞
首页