题目
题意:给定两排网络
a
a
a和
b
b
b,每排电脑数为
n
(
3
<
=
n
<
=
1
0
5
)
n(3 a[i];
b.resize(n);
fore (i, 0, n)
cin >> b[i];
return true;
}
int bestCandidate(const vector &vals, int cur) {
int bst = INF + 10, pos = -1;
fore (i, 0, n) {
if (bst > abs(cur - vals[i])) {
bst = abs(cur - vals[i]);
pos = i;
}
}
return pos;
}
inline void solve() {
li bst = 10ll * INF;
vector cds1 = {0, bestCandidate(b, a[0]), n - 1};
vector cds2 = {0, bestCandidate(b, a[n - 1]), n - 1};
for (int var1 : cds1) {
for (int var2 : cds2) {
li ans = (li)abs(a[0] - b[var1]) + abs(a[n - 1] - b[var2]);
if (var1 > 0 && var2 > 0)// b[0]不通,需要连通b[0]
ans += abs(b[0] - a[bestCandidate(a, b[0])]);
if (var1
Fault-tolerant Network(连通块/贪心)
关注
打赏
热门博文
立即登录/注册
微信扫码登录
