HNOI2004 寵物收養場 題解 set

2022-05-19 22:02:32 字數 682 閱讀 8826

題目大意:

有 \(n(n \le 80000)\) 只寵物或領養者依次來到寵物收養場,他們都有乙個特徵值。

當有乙隻寵物進入收養場時,如果存在等待的領養者,會從領養者中挑選和寵物特徵值最接近的領養者匹配(然後離開收養場);否則,寵物等待。

當有乙個領養者進入收養場時,如果存在等待的寵物,會從寵物中挑選和領養者特徵值最接近的寵物匹配(然後離開收養場);否則,領養者等待。

每次匹配,答案都會加上匹配的寵物和領養者的差的絕對值,求答案。

解題思路:

首先這種邊界性問題考慮用二分解決。

但是資料是動態的(動態插入和刪除),所以考慮用集合(set)來維護資料,然後在set上進行二分。

實現**如下:

#include using namespace std;

const int maxn = 80080, mod = 1000000;

setpets, owners;

int n, ans, op, a;

void solve(set&st, int a)

else

else

else }}

}int main()

else

}printf("%d\n", ans);

return 0;

}

HNOI2004 寵物收養場

凡凡開了一間寵物收養場。收養場提供兩種服務 收養被主人遺棄的寵物和讓新的主人領養這些寵物。每個領養者都希望領養到自己滿意的寵物,凡凡根據領養者的要求通過他自己發明的乙個特殊的公式,得出該領養者希望領養的寵物的特點值a a是乙個正整數,a 2 31 而他也給每個處在收養場的寵物乙個特點值。這樣他就能夠...

HNOI2004 寵物收養場

題目描述 凡凡開了一間寵物收養場。收養場提供兩種服務 收養被主人遺棄的寵物和讓新的主人領養這些寵物。每個領養者都希望領養到自己滿意的寵物,凡凡根據領養者的要求通過他自己發明的乙個特殊的公式,得出該領養者希望領養的寵物的特點值a a是乙個正整數,a 2 31 而他也給每個處在收養場的寵物乙個特點值。這...

HNOI2004 寵物收養場 splay

題目描述 凡凡開了一間寵物收養場。收養場提供兩種服務 收養被主人遺棄的寵物和讓新的主人領養這些寵物。每個領養者都希望領養到自己滿意的寵物,凡凡根據領養者的要求通過他自己發明的乙個特殊的公式,得出該領養者希望領養的寵物的特點值a a是乙個正整數,a 2 31 而他也給每個處在收養場的寵物乙個特點值。這...