2 条题解
-
0
思路
首先想到贪心。
我们把这个问题放到数轴上。就变成了找到符合条件的数 使得 与所有 在数轴上的点之间距离和的最小值尽可能的大。也就是求:
最后不要忘记特判 和 的特殊情况。问题迎刃而解。
代码
#include<bits/stdc++.h> using namespace std; #define int long long int t[10006]; int n, k, ans = -1e9; signed main() { cin >>n >>k; for(int i = 1; i <= k; i++) { cin >> t[i]; } //排序,方便判断 sort(t + 1, t + k + 1); //核心,找最大值 for(int i = 1; i < k; i++) { ans = max(ans, (t[i + 1] - t[i]) / 2); } //特判 ans = max(ans, t[1]); ans = max(ans, n - t[k]); cout << ans; return 0; }
- 1
信息
- ID
- 1635
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 8
- 标签
- 递交数
- 70
- 已通过
- 11
- 上传者