PTA貪心 區間選點問題

2021-09-29 05:39:02 字數 633 閱讀 7220

一、問題描述

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

第一行乙個數字n,表示有n個閉區間。 下面n行,每行包含2個數字,表示閉區間[ai, bi]輸出格式:

乙個整數,表示至少需要幾個點輸入樣例:

在這裡給出一組輸入。例如:

31 3

2 45 6輸出樣例:

在這裡給出相應的輸出。例如:

2二、**

#include

using

namespace std;

intmain()

}}int count =1;

int p = r[0]

;for

(int i =

1;icout

}

三、**思路

先將區間按照右邊界大小(即r[i])進行排序,尋找兩個不同區間的相同集合,找到了計數器不用加一,找不到就將p移到另一區間的右邊界,並且計數器加一

四、解題思路||感想

其實一開始由於我對動態規劃,貪心演算法不熟悉,我對這類題總會出現弱邏輯問題,這次也以為應該是錯的,就碰巧提交到pta,沒想到過了,我也懵逼。

貪心 區間選點問題

數軸上有 n 個閉區間 a i,b i 取盡量少的點,使得每個區間內都至少有乙個點 不同區間內含的點可以是同乙個 第一行1個整數n n 100 第2 n 1行,每行兩個整數a,b a,b 100 乙個整數,代表選點的數目 input 21546 output 1input 3132546 outpu...

貪心 區間選點問題

主要採用的就是貪心的思想,首先以每一段的右端點為判斷依據,通過重定義排序規則,使得排序規則是以右端點的大小來排序,然後通過遍歷整個陣列,如果左端點小於當前指定標誌位端點,說明這段是在點的內部範圍內的,就忽略,如果不是在當前指定標誌位端點,那麼就記錄端點數加一,同時更新標誌位端點為當前右端點。incl...

貪心問題 區間選點

問題描述 數軸上有 n 個閉區間 a i,b i 取盡量少的點,使得每個區間內都至少有乙個點 不同區間內含的點可以是同乙個 input 第一行1個整數n n 100 第2 n 1行,每行兩個整數a,b a,b 100 output 乙個整數,代表選點的數目 examples input21 546o...