貪心 2016cqround4火車運輸

2021-07-23 23:57:05 字數 2307 閱讀 7074

p3827火車運輸

時間限制 : - ms   空間限制 : 265536 kb

評測說明 : 1000ms

問題描述

byteland火車站(編號0)每天都要發往全國各地n列客運火車,編號1 n。第i列火車的目的地是編號si的火 車站。 對任意車站x,都與x+1車站有鐵軌直接相連,因此火車站可以看成數軸上的整數點,第i列火車可以停靠區 間[0, si]中的各個站點。每列火車裝載乘客的最大容量為ci。 有m個人需要乘坐火車。已知每個人的乘車區間為[li, ri],即是說,在li上車,在ri下車。 由於火車的容量限制,請你求出最多有多少人的乘車需求可以得到滿足。

輸入格式

第1行:2個整數n和m。

接下來n行,每行2個整數si和ci,表示第i輛車的目的站和容量。

接下來m行,每行2個整數li和ri,表示第i個乘客的乘車區間。

輸出格式

第1行:1個整數,表示最多有多少乘客的乘車需求可以滿足

樣例輸入

1 3 

10 2 

1 5 

3 7 

4 9

樣例輸出

2

提示

1 ≤ n,m ≤ 10^5

1 ≤ si,ci ≤ 10^9

1 ≤ li ≤ ri ≤ 10^9

分析:廢話不多說,相信仔細看過題的同學們一定想了各種方法。直接說正解,這個題是乙個經典的貪心模型!

一輛容量為c的火車看成c輛容量為1的火車。

那麼每一輛火車毫無疑問不存在同一區間有兩個或以上的人在上面,即一輛火車在乙個位置上面最多只能有乙個人。那麼現在來說怎麼貪心。

首先把火車按區間右端點由大到小排序,乘客雙關鍵字排序(右端點由大到小優先)。顯然排序後第一輛火車管不到的人就只有自殺了!然後,我們討論每乙個人,**中now是記的當前這個人可以乘坐的火車數,cnt[i]是當前討論過的人中左端點位於i的人數。

原則:如果有空的火車,他當然可以坐,也可以選擇和其他左端點在他的右端點右邊的人一起坐

,這也就是**中now加的那一坨。now>0即這個人可以坐,那他就坐。那麼堆是用來幹嘛的?維護一些人的左端點,考慮這樣乙個問題,

對於拼車的問題,因為是按右端點由大到小排序,先討論的右端點一定大,如果乙個人的區間是另乙個人的子區間,對於拼車問題,這個人明顯更優於另乙個人!

維護通過堆來實現!

#include#include#include#include#include#include#includeusing namespace std;

inline void _read(int &x)

for(x=0;t>='0'&&t<='9';t=getchar())x=x*10+t-'0';

if(!sign)x=-x;

}int n,m;

struct node;

node pass[500005];

bool cmp1(node a,node b)

struct node2;

node2 train[500005];

bool cmp2(node2 a,node2 b)

int tot=0;

int cnt[500005];

priority_queue,greater> q;

int ans=0;

int main()

for(i=1;i<=m;i++)

sort(train+1,train+1+n,cmp2);

sort(pass+1,pass+1+m,cmp1);

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

for(i=1;i<=m;i++)

int now,last;

i=1;j=1;

last=pass[1].r;

now=0;

while(pass[i].r>train[1].x&&i<=m)

for(;i<=m;i++)

while(last>pass[i].r)

if(now)

else if(q.size()&&q.top()}

cout<}

2016春季訓練 貪心

這一題理解題意是乙個問題,也就說,我們先知道了全年的情況,下面我們只要連續五個月計算盈虧,那麼賺了,則一定是s,虧了就一定是d,所以理論上,我們可以計算出前五個月的情況的。include include using namespace std int main long long s,d while...

NOIP2016模擬 JackMa 貪心

問題描述 mr he 因討厭?手動和諧 而徹底放棄網購,他的日常用品都要到商場去購買,而且必須付現金。但是現 金購買,經常會遇到找零的問題,那麼現在請你幫助他解決這樣乙個問題 現在 mr he 手上有 n 種不同面值的硬幣,每種硬幣有無限多個。為了方便購物,他希望帶盡量 少的硬幣,但是要能組合出 1...

SCOI2016 主席樹 貪心 美味

描述 一家餐廳有 n 道菜,編號 1 n 大家對第 i 道菜的評價值為 ai 1 i n a i 1 i n ai 1 i n 有 m 位顧客,第 i 位顧客的期望值為 bi,而他的偏好值為 xi 因此,第 i 位顧客認為第 j 道菜的美味度為 bix or a j xi b i xor a j x...