後悔貪心法 牛客練習賽50(C題)

2021-09-27 21:41:32 字數 1170 閱讀 6244

題目描述

在乙個遊戲中,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寫譜的方式比較獨特。他會先寫出乙個按照音符出現順...