洛谷黃題(點選跳轉
)題目描述:
一條街的一邊有幾座房子。因為環保原因居民想要在路邊種些樹。路邊的地區被分割成塊,並被編號成1..n。每個部分為乙個單位尺寸大小並最多可種一棵樹。每個居民想在門前種些樹並指定了三個號碼b,e,t。這三個數表示該居民想在b和e之間最少種t棵樹。當然,b≤e,居民必須記住在指定區不能種多於區域地塊數的樹,所以t≤e-b+l。居民們想種樹的各自區域可以交叉。你的任務是求出能滿足所有要求的最少的樹的數量。寫乙個程式完成以下工作:
輸入格式:
第一行包含資料n,區域的個數(0
第二行包含h,房子的數目(0
下面的h行描述居民們的需要:b e t,0
輸出格式:
輸出檔案只有一行寫有樹的數目
輸入樣例#1:
941 4 2
4 6 2
8 9 2
3 5 2
輸出樣例#1:
5解析
很明顯,這是一道貪心加排序的題,就是n個樹,還有一大堆的區間。弄了好半天,才知道是從右端點往左端點列舉。大家不要犯與我一樣的錯誤。
然後上**:
**
#includeusing namespace std;struct tree
a[30001];
int n,h,ans;
bool m[30001];
bool cmp(tree x,tree y)
if(cnt_ans>=a[i].t) continue;
for(int j=a[i].e;j>=a[i].b;j--)}}
cout
}
洛谷 P1250 種樹 貪心
一條街的一邊有幾座房子。因為環保原因居民想要在路邊種些樹。路邊的地區被分割成塊,並被編號成1.n。每個部分為乙個單位尺寸大小並最多可種一棵樹。每個居民想在門前種些樹並指定了三個號碼b,e,t。這三個數表示該居民想在b和e之間最少種t棵樹。當然,b e,居民必須記住在指定區不能種多於區域地塊數的樹,所...
洛谷P1250種樹(貪心)
一條街的一邊有幾座房子。因為環保原因居民想要在路邊種些樹。路邊的地區被分割成塊,並被編號成1.n。每個部分為乙個單位尺寸大小並最多可種一棵樹。每個居民想在門前種些樹並指定了三個號碼b,e,t。這三個數表示該居民想在b和e之間最少種t棵樹。當然,b e,居民必須記住在指定區不能種多於區域地塊數的樹,所...
20190709種樹(洛谷P1250)
題目描述 一條街道的一邊有幾座房子,因為環保原因居民想要在路邊種些樹,路邊的居民被分割成 n 塊,並被編號為 1 n。每塊大小為乙個單位尺寸並最多可種一棵樹。每個居民想在門前種些樹並指定了三個數b,e,t。這三個數分別表示該居民想在b和e之間最少種t棵樹,當然b e,t e b 1,允許居民想種樹的...