Week 3 區間選點

2021-10-03 17:26:09 字數 1139 閱讀 7171

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

input

第一行1個整數n(n<=100)

第2~n+1行,每行兩個整數a,b(a,b<=100)

output

乙個整數,代表選點的數目

樣例輸入1

2

1 54 6

樣例輸出1

1
樣例輸入2

3

1 32 5

4 6

樣例輸出2

2
選最少的點使每個區間至少有乙個點,要選最少的點,那麼最好的選擇是點在兩個或者多個區間的重合處,確保用最少的點包含最多的區間,但是同樣存在兩個區間之間沒有重合的部分,此時需要加乙個點來表示區間

區間結構體包括區間的左右端點

區間排序函式:對輸入的區間進行排序,原則為先按右端點公升序排序,右端點相等的時候按左端點降序排序

遍歷有序的區間,不斷更新已被覆蓋的區間,當檢測到某一區間的左端點大於前一區間的右端點時,點數+1,繼續遍歷,直至所有區間均被訪問。

#include

#include

#include

using

namespace std;

struct section

;bool

cmp(

struct section x,

struct section y)

queue q;

//區間佇列

intmain()

sort

(s,s+n,cmp)

;//對區間進行排序

q.push

(s[0])

;//入隊

num++

;//依次遍歷排序之後的區間

for(

int i=

1;icout<}

week3 區間選點

title 數軸上有 n 個閉區間 x i,y i 取盡量少的點,使得每個區間內都至少有乙個點 不同區間內含的點可以是同乙個 input 第一行1個整數n n 100 第2 n 1行,每行兩個整數x,y x,y 100 output 乙個整數,代表選點的數目。分析 總結 貪心準則直接決定了貪心演算法...

Week3 區間選點 區域性貪心

題目內容 數軸上有 n 個閉區間 a i,b i 取盡量少的點,使得每個區間內都至少有乙個點 不同區間內含的點可以是同乙個 輸入格式 第一行1個整數n n 100 第2 n 1行,每行兩個整數a,b a,b 100 輸出格式 乙個整數,代表選點的數目 樣例 input 21 5 4 6output ...

區間選點(week3 作業B)

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