傳送門
給出n
nn個區間,m
mm個時間點
問區間最多包含多少個時間點
對於同乙個時間點來說,區間左端點越靠前肯定越優,所以我們按照左端點的公升序進行排序
而當左端點相等時,我們不難發現,右端點越靠後就越有可能對答案有貢獻,所以我們用小根堆儲存右端點,不斷維護符合要求的區間即可
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long long
#define lzx 998244353
using namespace std;
inline ll read()
while
(s>=
'0'&&s<=
'9')
return d*f;
}struct nodee[
200005];
int t[
200005];
bool cmp
(node x,node y)
priority_queue<
int> q;
intmain()
cout
}
jzoj4249 遊戲 貪心
0 n 0 sim n 0 n的點,從i ii移動到j jj獲得aj j i a j j i aj j i 的價值。求最大價值。考慮貪心,每次移動到往後a ia i ai 最大的點。證明 反證明 我們假設有一種情況i ij a jaj 但是之間移動到j jj比先移動到i ii更優。但是若我們先移動到...
jzoj數字遊戲 貪心 DP
description 一行數字a1,a2,a3,an,有m個回合,每個回合必須從中選擇乙個數字擦去它,接著每個回合後剩下來的每個數字ai都要遞減乙個相應的值bi。如此重複m個回合,所有你擦去的數字之和就是你所得的分數。給出n,m,a數列和b數列,求所得的最多的分數。input 輸入檔案的第一行是乙...
貪心 失意(jzoj 2318)
在x軸上給出n條線段,讓你選m條線段,使他們的相交部分盡量大 4 6 33 8 4 12 2 61 10 5 911 124 1 2 4我們先從左到右選m條線段,然後用乙個小根堆來存這m條線段的結束位置,然後每遇到一條線,就判斷結束位置是否比堆中最小結束位置小,如果是那麼刪掉堆中的那條線段,然後加上...