題目描述
在乙個遊戲中,tokitsukaze需要在n個士兵中選出一些士兵組成乙個團去打副本。
第i個士兵的戰力為v[i],團的戰力是團內所有士兵的戰力之和。
但是這些士兵有特殊的要求:如果選了第i個士兵,這個士兵希望團的人數不超過s[i]。(如果不選第i個士兵,就沒有這個限制。)
tokitsukaze想知道,團的戰力最大為多少。
輸入描述:
第一行包含乙個正整數n(1≤n≤10^5)。
接下來n行,每行包括2個正整數v,s(1≤v≤10^9,1≤s≤n)。
輸出描述:
輸出乙個正整數,表示團的最大戰力。
輸入
2輸出 輸入1 22 2
3輸出 貪心+優先佇列;1 32 3
100 1
1.先把s排序,從大到小排序;
2.如果要取第 i 個人,那麼人數肯定要小於等於s[i];每次取 i 時,把 v[i] 放入乙個小根堆中,當堆的大小大於s[i],然後進行退隊;然後記錄每次的sum時,取最大值;
**:
#include
#define ll long long
#define pa pair
using
namespace std;
priority_queue< ll,vector
,greater
>qu;
struct nodean[
100100];
bool
cmp(node p,node q)
intmain()
mmax=
max(mmax,sum);}
printf
("%lld\n"
,mmax)
;return0;
}
牛客練習賽34 C題
小w有m條線段,編號為1到m。用這些線段覆蓋數軸上的n個點,編號為1到n。第i條線段覆蓋數軸上的區間是l i r i 覆蓋的區間可能會有重疊,而且不保證m條線段一定能覆蓋所有n個點。現在小w不小心丟失了一條線段,請問丟失哪條線段,使數軸上沒被覆蓋到的點的個數盡可能少,請輸出丟失的線段的編號和沒被覆蓋...
牛客練習賽53(C題)
題目描述 有n個長度為m的文字串,每個串只含有 0 和 1 接下來有q次詢問,每次給出乙個長度為m的字串,且只含有 0 1 和 如10 1 1。下劃線可以匹配 0 或 1 即10 1 1可以匹配101111,101101,100111,100101四種串。每次詢問求出n個文字串中有多少個可以與當前詢...
牛客練習賽40A題
題目描述 作為這命運劇場永遠的觀眾,小d一直注視著這片星光璀璨的舞台,舞台上,少女們的身姿演繹出了一幕幕動人的場景,令人回味無窮。有的時候,小d也會自己寫一些歌曲,來加入starlight的劇本,使得劇本充滿了新的生命力。現在小d又要準備寫樂譜了,小d寫譜的方式比較獨特。他會先寫出乙個按照音符出現順...