文章
62
粉丝
0
获赞
0
访问
9.8k
(1)
距离D可化简为:D = 2 * (max(a,b,c) - min(a,b,c))
枚举a[i],对于每一个a[i],二分找到两侧最近的b,此时得到区间[a,b]或[b,a]
之后再二分第一个大于等于区间左端点的c[j],这样就可以得到选a[i]的最优答案ans = min(ans, D[i])
其中D[i] = min(2 * (max(a,b) - c[i-1]), 2 * (max(a,b,c) - min(a, b)));
(2)
int GetAns(int l, int r, Set<int>S3)
{
int ans = INT_MAX;
auto c = S3.lower_bound(l);
if (c != S3.end()) {
ans = min(ans, 2 * (max(b, *c) - a));
}
if (c != S3.begin()) {
ans = min(ans, 2 * (b - c));
}
return ans;
}
int Solve(vector<int>S1, Set<int>S2, Set<int>S3)
{
int ans = INT_MAX;
for(auto &a : S1) {
auto b = S2.lower_bound(a);
if (b != S2.end()) {
ans = m...
登录后发布评论
暂无评论,来抢沙发