B 區間選點 貪心演算法

2021-10-03 14:21:34 字數 684 閱讀 4730

數軸上有 n 個閉區間 [a_i, b_i]。取盡量少的點,使得每個區間內都至少有乙個點,輸出選點的數目。

樣例輸入輸出:

定義乙個結構體表示區間,讀入資料後,進行多關鍵字排序(第一為右區間小的在前,第二為左區間大的在前)。

從開始選擇第乙個區間的右端點point,向後迴圈,若point在該區間內,則繼續迴圈,直到遇到第乙個不包含point的區間,更新point的值,繼續迴圈,直到所有的區間內都有點為止。

主要是確定貪心的指標,在本解法中,將所有區間的右端點排序,然後尋找點。

#include

#include

using

namespace std;

struct section

;bool

com(section a, section b)

intmain()

sort

(sec, sec + n, com)

;int sum =0;

//標記當前已經選的點的個數

int num =0;

//標記已選點的區間個數

int m =0;

//從第m個區間開始選點

while

(num < n)

num++;}

} cout << sum;

}

區間選點(貪心演算法)

數軸上有 n 個閉區間 a ia i ai b ib i bi 取盡量少的點,使得每個區間內都至少有乙個點 不同區間內含的點可以是同乙個 輸入要求 第一行輸入整數n,第2 n 1行,每行輸入兩個整數,表示a ia i ai 和 b ib i bi 輸出要求 輸出選點的數目 sample input ...

Week3 B 區間選點 貪心演算法

題目大意 數軸上有 n 個閉區間 a i,b i 取盡量少的點,使得每個區間內都至少有乙個點 同區間內含的點可以是同乙個 思路本題是一道貪心問題,解決問題的關鍵是尋找恰當的貪心的方法。這道題採用如下貪心方法 為什麼上述做法可以實現選點最少呢?在按照上述方法排序後,我們從左往右想。對於第乙個區間,其中...

區間選點 貪心

給定n個閉區間 ai,biai,bi 請你在數軸上選擇盡量少的點,使得每個區間內至少包含乙個選出的點。輸出選擇的點的最小數量。位於區間端點上的點也算作區間內。輸入格式 第一行包含整數n,表示區間數。接下來n行,每行包含兩個整數ai,biai,bi,表示乙個區間的兩個端點。輸出格式 輸出乙個整數,表示...