演算法 什麼是寵物收養所問題?

2021-10-12 07:21:02 字數 871 閱讀 2542

​最近,小多公尺準備開一間寵物收養所。這個收養所就只提供兩種服務:收養被主人遺棄的寵物和讓新的主人領養這些寵物。

但是呢,小多公尺很擔心領養了自己寵物的領養者對領養的寵物不滿意。於是呢,她自己發明了乙個特殊的公式,用來算出該領養者希望領養的寵物的特點值a(a是乙個正整數,a<2^31),而她也給每個在收養所的寵物乙個特點值。

這樣一來,她通過統計就很容易知道寵物領養者對自己領養的寵物滿意度,也能夠很方便的處理整個領養寵物的過程了。

寵物收養所總是只會有兩種情況發生:被遺棄的寵物過多或者想要收養寵物的人太多。

當被遺棄的寵物過多時:假若這個時候寵物收養所來乙個領養者,這個領養者希望領養的寵物的特點值為a,那麼它將會領養乙隻目前還未被領養的寵物中特點值最接近a的乙隻寵物。(說明:任何兩隻寵物的特點值都不可能完全相同,任何兩個領養者的希望領養寵物的特點值也是不可能完全相同)如果此時有兩隻滿足領養者要求的寵物,即存在兩隻寵物,他們的特點值分別為a-b和a+b,那麼領養者會領養特點值為a-b的那只寵物。

當想收養寵物的人過多時:假若這個時候寵物收養所來了乙隻被收養的寵物,那麼哪個領養者可以領養它呢?可以領養它的領養者,是那個希望被領養寵物的特點值最接近該寵物特點值的領養者。如果這個寵物的特點值為a,存在兩個領養者,他們希望領養寵物的特點值分別是a-b和a+b,那麼特點值為a-b的那個領養者將會成功領養這個寵物。

乙個領養者領養了乙個特點值為a的寵物,而領養者本身希望領養寵物的特點值為b,那麼這個領養者的不滿意程度為abs(a-b)。

在這一年剛開始時,小多公尺的收養所裡面既沒有寵物,也沒有領養者。到這一年年底時,她得到了一年當中領養者和被收養寵物到來收養所的情況。那麼你怎麼才能計算出所有收養了寵物的領養者的不滿意程度的總和呢?

上面就是演算法中「寵物收養所」問題。聰明的你,知道怎麼幫助小多公尺解決這個問題嗎?

視覺化講解 什麼是寵物收養所問題?

第一天,小多公尺的寵物收養所開門大吉,鄰居小王把自己的寵物大黃送到收養所。小多公尺忙前忙後的給小寵物清洗直到夜晚才用自己的 神奇公式 給大黃編上了特點值5掛到脖子上 此時收養所裡有1只寵物,0個領養者,領養者對寵物的不滿意度為0。具體效果如下圖。第二天,鄰居如花把自己的寵物小灰送到收養所,小多公尺又...

HNOI2004寵物收養所

time limit 10 sec memory limit 162 mb submit 2796 solved 995 submit status discuss 最近,阿q開了一間寵物收養所。收養所提供兩種服務 收養被主人遺棄的寵物和讓新的主人領養這些寵物。每個領養者都希望領養到自己滿意的寵物,...

Treap BZOJ 1208 寵物收養所

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