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...