線段上 簡單貪心總結 未完

2022-04-29 13:12:07 字數 562 閱讀 3046

struct pointp[n];

1、選擇不相交區間

【例1】數軸上有n個開區間(ai,bi)。選擇盡量多個區間,使得這些區間兩兩沒有公共點。

【solution】

bool cmp(point x, point y){

if(x.b!=y.b)

return x.aelse

return x.bsort(p,p+n,cmp);

再一次選區間

2、區間選點問題

【例2】數軸上有n個閉區間[ai,bi]。取盡量少的點,使得每個區間內都至少有乙個點(不同區間內含的點可以是同乙個)。

【solution】排序方式:所有區間按b從小到大排序(b相同時a從大到小排序),選點時選未覆蓋點的區間的右端點。

3、區間覆蓋問題

【例3】數軸上有n個閉區間[ai,bi]。選擇盡量少的區間覆蓋一條指定線段[s,t]。

【solution】首先進行預處理,在[s,t]外部的線段全部除去。各區間按a從小到大排序(a相同時b從大到小排序)

不斷用已選擇的區間右端點bi更新要覆蓋線段的起點,知道已知線段被全部覆蓋。

簡單貪心總結

題目描述 大家千萬別讓波波蒙人的外表給騙了,其實他就是偷吃界所向披靡的大胃王 從前,有一天,實驗室買了一批新零食,而又剛好大家出去吃飯了,月黑風高,波波出動了 假設他有乙個容量為m的胃,實驗室的n件食物每件都有體積vi,有每一單位體積的美味值di,他想要能偷吃到食物的美味值相加和最大,假設他可以每件...

線段樹 乙個簡單的整數問題(未完)

你有n個整數,a1,a2,an。你需要處理兩種操作。一種操作是在給定間隔中為每個數字新增一些給定數字。另一種是要求給定間隔中的數字總和。第一行包含兩個數字n和q.1 n,q 100000。第二行包含n個數字,a1,a2,an的初始值。1000000000 ai 1000000000。接下來的q行中的...

nyoj 71 獨木舟上的旅行 貪心 簡單

時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述 進行一次獨木舟的旅行活動,獨木舟可以在港口租到,並且之間沒有區別。一條獨木舟最多只能乘坐兩個人,且乘客的總重量不能超過獨木舟的最大承載量。我們要儘量減少這次活動中的花銷,所以要找出可以安置所有旅客的最少的獨木舟條數。現在請寫乙個...