洛谷P1803 線段覆蓋(貪心)

2021-09-25 15:52:28 字數 516 閱讀 7149

題目大意:

有n個線段,問最多能放多少個不重疊的線段。

解題思路:

右端點從小到大排序,我們每次盡可能地放右端點小的線段,能放就放(即不重疊)就可以了,為什麼這樣可行呢?因為右端點比較小更可能留有位置放其它區間。

廢話:好久沒做貪心題了,這種區間題應該能反應過來需要考慮左,右或者區間長度這三個資訊,然後再構建演算法。另外,所謂貪心,每一步所做的都可以理解為 為最後的全域性最優做準備(qaq 我也不知道自己講了什麼)

#include using namespace std;

int main()

sort(mv.begin(),mv.end(),less>());

int lsr;int sum=0;

for(int i=0;i<(int)mv.size();i++)

if(mv[i].secondlsr=mv[i].first;

sum++;

} cout

}

洛谷P1803 凌亂的yyy 線段覆蓋 貪心

現在各大oj上有n個比賽,每個比賽的開始 結束的時間點是知道的。yyy認為,參加越多的比賽,noip就能考的越好 假的 所以,他想知道他最多能參加幾個比賽。由於yyy是蒟蒻,如果要參加乙個比賽必須善始善終,而且不能同時參加2個及以上的比賽。輸入格式 第一行是乙個整數n 接下來n行每行是2個整數ai,...

洛谷 P1803 線段覆蓋 C語言

附上 include typedef struct game void quicksort game a,int s,int e 快排 intmain quicksort a,0 n 1 排序,按照結束的時間排序,結束時間早的排在前面 int result 0 int i 1 int last a ...

洛谷 P1803 凌亂的yyy 線段覆蓋

話說個人覺得前面的幾篇並不是很好,其實沒有那麼難,也沒有那麼長 很久以前就看到了,但貌似一直認為自己的演算法是錯誤的,結果交上去發現是正解 首先按照時間排序 貪心 結束時間早 盡可能不影響後面的比賽 的在前,若結束時間相同,則開始時間晚 盡可能不影響前面的比賽 的在前。如果兩者的判斷順序反了,就把最...