一本通 1 1 例 2 種樹

2022-05-05 13:21:15 字數 501 閱讀 6678

題目傳送門

這題的題目問的是要滿足所有居民的建議,至少要種多少棵樹。 對於這種題目,我們首先想到的應該是貪心策略。

貪心策略:

首先按右端點從小到大排序,因為要求樹最少,所以要盡量放在右端點。然後定義乙個bool陣列判斷該點是否種過樹即可。

從右端點開始種,可以讓更多的樹照顧到更右側的端點,這樣就能使種的數最少了。

#include using namespace std;

const int maxn = 3e4 + 5;

typedef long long ll;

struct node ;

node arr[maxn];

bool visited[maxn];

inline bool cmp (node a, node b)

int main()}}

cout << ans << endl;

return 0;

}

10001 一本通 1 1 例 2 種樹

題目題目題目 題目描述 某條街被劃為 n條路段,這 n 條路段依次編號為 1 n。每個路段最多可以種一棵樹。現在居民們給出了 hhh 組建議,每組建議包含三個整數 b,e,t,表示居民希望在路段 b 到 e 之間至少要種 t 棵樹。這些建議所給路段的區間可以交叉。請問 如果要滿足所有居民的建議,至少...

一本通 1 1 例 1 活動安排

題目link 貪心即可,將活動按右端點排序,排序後能選則選。o n 證明 首先對於乙個前面都為最優序列的前提下,如果對於乙個活動 a 使它發生是一種最優序列,然後再對於另乙個活動 b 它的結束時間比 a 早,並且開始時間也滿足條件,那麼根據貪心就可以選它,因為它既合法又是一種最優序列。1 inclu...

一本通 1 1 練習 2 數列分段

題目link 首先對於乙個序列,從 a 1 l 都符合最佳序列,假設對於第 l 1 個數,它放到從 l 1 r 的區間是一種最優的方法,並且它也可以放在從 1 l 1 這裡,那麼根據貪心,它放到 1 l 1 的序列中是合法的,而且也是一種最優方案。因此,這道題只需要貪心 能將當前數往左放就往左放。1...