題意:m頭牛每頭牛有minspf和maxspf,n種spf為spf[i]的防曬霜每種l[i]瓶,盡可能給數量多的牛塗防曬霜,每頭牛最多塗一瓶。
思路:貪心想法,實現是每次取出minspf<=spf[i]的牛加入優先佇列中,優先佇列以牛的maxspf為優先,給maxspf>=spf[i]且maxspf從小開始取的牛塗(優先佇列)。
#include#includeview code#include
#include
using
namespace
std;
pair
cow[2510
];pair
bot[2510
];struct
cmp
};priority_queue
int,int>,vectorint,int> >,cmp>pq;
intmain()
sort(cow,cow+c);
for(int i=0;i)
sort(bot,bot+l);
pair
temp;
int j=0
;
for(int i=0;i)
while(bot[i].second>0 && !pq.empty()) } }
printf(
"%d\n
",cnt);
return0;
}
POJ 3614 優先佇列
題意 傳送門 poj 3614 對防曬霜按 spf 公升序排序,每次處理當前防曬霜,就將所有 spf 小於等於該 spf 值的牛入隊,此時入隊的牛也是其後處理的防曬霜的可能塗抹物件。為了使防曬的牛數量最大,當前處理的防曬霜選擇優先佇列中 spf 最大值最小的牛進行塗抹。include include...
POJ3614與優先佇列
優先佇列這個博主講的比較全 題意 奶牛曬太陽,有下限和上限,要保證曬到上下限之間,每瓶防曬霜可以固定一頭奶牛曬到乙個固定值,求最多幾頭奶牛可以達到要求 要點 先把奶牛按照最小值從小到大排序,在把防曬霜從小到大排序,從最小的防曬霜列舉,如果大於奶牛的最小值就把奶牛的最大值放入優先數列 從小到大 這樣的...
POJ 3614 Sunscreen 優先佇列
題目大意 給你一些母牛,母牛有能容忍日光浴的最小和最大光照強度。每只母牛可以塗一次spf,spf可以將母牛可以承受的光照強度固定在某個地方。現在給你母牛的最小和最大值和不同的spf的光照強度及其數量,求最多可以有多少母牛享受日光浴?思路 優先佇列。先按母牛最小承受的排好,然後spf的值也從小到大。接...