題意:奶牛美容:有c頭奶牛日光浴,每頭奶牛分別需要minspf_i和maxspf_i單位強度之間的陽光。現有l種防曬霜,分別能使陽光強度穩定為spf_i,其瓶數為cover_i。求最多滿足多少頭奶牛
思路:將奶牛按照陽光強度的最小值從小到大排序。將防曬霜也按照能固定的陽光強度從小到大排序。
從最小的防曬霜列舉,將所有符合最小值小於等於該防曬霜的奶牛的最大值放入優先佇列之中。
然後優先佇列是小值先出,所以就可以將這些最大值中的最小的取出來。更新答案。
#include #include #include #include #include #include #include #define maxn 2555using namespace std;
int c, l;
typedef pairp;
priority_queue, greater> q;
p cow[maxn], bot[maxn];
int main()
while (!q.empty() && bot[i].second)
}printf("%d\n", ans);
return 0;
}
POJ 3614 優先佇列
題意 傳送門 poj 3614 對防曬霜按 spf 公升序排序,每次處理當前防曬霜,就將所有 spf 小於等於該 spf 值的牛入隊,此時入隊的牛也是其後處理的防曬霜的可能塗抹物件。為了使防曬的牛數量最大,當前處理的防曬霜選擇優先佇列中 spf 最大值最小的牛進行塗抹。include include...
POJ 3614 Sunscreen 優先佇列
題目大意 給你一些母牛,母牛有能容忍日光浴的最小和最大光照強度。每只母牛可以塗一次spf,spf可以將母牛可以承受的光照強度固定在某個地方。現在給你母牛的最小和最大值和不同的spf的光照強度及其數量,求最多可以有多少母牛享受日光浴?思路 優先佇列。先按母牛最小承受的排好,然後spf的值也從小到大。接...
POJ3614與優先佇列
優先佇列這個博主講的比較全 題意 奶牛曬太陽,有下限和上限,要保證曬到上下限之間,每瓶防曬霜可以固定一頭奶牛曬到乙個固定值,求最多幾頭奶牛可以達到要求 要點 先把奶牛按照最小值從小到大排序,在把防曬霜從小到大排序,從最小的防曬霜列舉,如果大於奶牛的最小值就把奶牛的最大值放入優先數列 從小到大 這樣的...