JNU校賽 K 貪心 資料結構水題

2021-08-11 02:24:35 字數 1700 閱讀 7163

題目

ctg(cun tou gaming) 是我校的一支 lol 戰隊,他們參加比賽總是可以拿到冠軍,因為每次都只有他們一支隊伍參賽,所以只需要去簽個到就可以直接奪冠並領取獎金。現在有 n 場比賽可以讓他們選擇,每場比賽都有各自的截止日期 d 和獎金 r ,而 ctg 戰隊必須在截止日期之前(包括截止日期當天)去參賽才可以拿到獎金。由於簽到是一項很辛苦的工作所以戰隊一天只能參加一場比賽。現在要你設計出一種參賽方案,使他們可以拿到最多的獎金。

input

有多組樣例,第一行乙個整數 t(t≤10),表示 t組樣例,對於每組樣例:

第一行給出乙個整數 n表示有 n(n≤105)場比賽可以參加。

接下來的 n行,每行由 d 和 r 組成 (d,r≤109),分別表示截止日期和獎金數。

output

輸出 t行。

每行即為該組測試中可以拿到的最多獎金數,保證答案在long long int的範圍內。

examples

input

2 3

2 10

2 15

3 20

3 2 10

1 50

1 40

output

45 60

解析:這道題目其實是一道非常水的題目,但是我還是太菜了,比賽的時候一眼覺得是乙個貪心,但是由於資料量太大,不能暴力的貪心,所以覺得無從下手,但是只要稍微轉乙個彎,我們對日期進行貪心,然後有優先佇列選出當前需要的最大的那個就可以了

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

const

double pi = acos(-1.0);

const

double eps = 1e-6;

const

int inf = 0x3f3f3f3f;

const

long

long inf =1e18;

const

int maxn = 1e5+50;

const

int mod =1e9+7;

int t,n,m;

struct node

int main()

sort(sh+1,sh+1+n,cmp);

// for(int i=1;i<=n;i++)

//

priority_queuepq;

int day=sh[1].d;

for(int i=1; i<=n; i++)

else

day--;

i--;

//cout<}

}while(day)

day--;

}printf("%lld\n",ans);

}return

0;}

XDU校賽F(貪心 優先佇列)

既然代主席叫窩寫題解,窩當然得好好寫辣。原題 思路 其實最主要的問題是在記憶體滿的時候將誰彈出,也就是讓留在記憶體裡面的頁面盡可能得發揮作用。怎麼發揮作用?反正碰到相同頁面的能發揮作用了嘛。對記憶體裡面的所有頁面找里他下乙個相同頁面,刪除的時候當然是刪除下乙個頁面最遠的那個啦。然後貌似不太靠譜?可能...

河南多校大一訓練賽(貪心)

time limit 1000msmemory limit 262144kb64bit io format i64d i64u submit status practice openj bailian 4120 description 太空飛行員bob 有一天來到火星上,他有收集硬幣的習慣。於是他將...

長理 校賽的 乙個貪心題

描述 眾所周知,長春理工大學的 嗨呀好氣啊 隊伍由兩個菜雞lzp和cls以及某x姓巨巨組成,熱身賽打的太好可能導致電腦裡的pc 2被刪掉,所以熱身賽一般都是由lzp和cls兩個菜雞代表隊伍參加比賽,熱身賽由n道題組成,他們隊內分工明確,lzp想出思路,然後cls去寫,第i個題目lzp思考出來的是第a...