有n個任務,每個任務有乙個最晚結束時間以及乙個對應的獎勵。在結束時間之前完成該任務,就可以獲得對應的獎勵。完成每乙個任務所需的時間都是1個單位時間。有時候完成所有任務是不可能的,因為時間上可能會有衝突,這需要你來取捨。求能夠獲得的最高獎勵。
input
第1行:乙個數n,表示任務的數量(2 <= n <= 50000)
第2 - n + 1行,每行2個數,中間用空格分隔,表示任務的最晚結束時間ei以及對應的獎勵wi。(1 <= ei <= 10^9,1 <= wi
<= 10^9)
output
輸出能夠獲得的最高獎勵。
sample input
7
4 20
2 60
4 70
3 40
1 30
4 50
6 10
sample output
230
#include
#include
#include
using namespace std;
typedef long long ll;
typedef struct node
}node;
node misson[50010];
int cmp(node a,node b)
else
return0;}
int main()
sort(misson,misson+n,cmp);
node temp=misson[0];
pq.push(temp);
for(int i=1;iif(pq.size()pos)
pq.push(misson[i]);
else
if(pq.size()==misson[i].pos)}}
ll ans=0;
while(pq.size())
printf("%i64d\n",ans);
//不知道為什麼long long 型別寫成這樣的話,編譯器就沒有warnning
return
0;}
最高的獎勵
1163 最高的獎勵 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 有n個任務,每個任務有乙個最晚結束時間以及乙個對應的獎勵。在結束時間之前完成該任務,就可以獲得對應的獎勵。完成每乙個任務所需的時間都是1個單位時間。有時候完成所有任務是不可能的,因為時間上可能會...
最高的獎勵
有n個任務,每個任務有乙個最晚結束時間以及乙個對應的獎勵。在結束時間之前完成該任務,就可以獲得對應的獎勵。完成每乙個任務所需的時間都是1個單位時間。有時候完成所有任務是不可能的,因為時間上可能會有衝突,這需要你來取捨。求能夠獲得的最高獎勵。input 第1行 乙個數n,表示任務的數量 2 n 500...
最高的獎勵 貪心
1163 最高的獎勵 基準時間限制 1 秒 空間限制 65536 kb 分值 20 有n個任務,每個任務有乙個最晚結束時間以及乙個對應的獎勵。在結束時間之前完成該任務,就可以獲得對應的獎勵。完成每乙個任務所需的時間都是1個單位時間。有時候完成所有任務是不可能的,因為時間上可能會有衝突,這需要你來取捨...