數軸上有 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...