貪心 區間覆蓋問題

2021-08-10 02:52:46 字數 734 閱讀 5713

區間覆蓋問題

time limit: 1000ms memory limit: 65536kb

submit statistic discuss

problem description

設x1 , x2 ,…… , xn 是實直線上的n 個點。用固定長度的閉區間覆蓋這n 個點,至少需要多少個這樣的固定長度閉區間?

對於給定的實直線上的n個點和閉區間的長度k,設計解此問題的有效演算法,計算覆蓋點集的最少區間數,並證明演算法的正確性。

input

輸入資料的第一行有2 個正整數n和k(n≤10000,k≤100),表示有n個點,且固定長度閉區間的長度為k。接下來的1 行中,有n個整數,表示n個點在實直線上的座標(可能相同)。

output

輸出乙個整數,表示計算出的最少區間數輸出。

example input

7 3

1 2 3 4 5 -2 6

example output

#include 

#include

using

namespace

std;

int main()

sort(a,a+n);

int mark=a[0];

int num=1;

for(int j=1;jif(a[j]>mark+k)

}cout

0;}

貪心法 區間覆蓋問題

區間覆蓋問題。數軸上有n個閉區間 a i,bi 選擇盡量少的區間覆蓋一條指定線段 s t 先進行預處理,將不包含 s t 的區間都去掉,然後再按左區間從小到大排序。如果最小區間的左區間大於 s 的話,則無解。選取包含 s的右區間最大的區間,該區間的右區間仍然小於下乙個區間的左區間,則無解。按照這樣的...

區間覆蓋問題(貪心) SDUT

time limit 1000 ms memory limit 65536 kib submit statistic 用i來表示x座標軸上座標為 i 1,i 的長度為1的區間,並給出n 1 n 200 個不同的整數,表示n個這樣的區間。現在要求畫m條線段覆蓋住所有的區間,條件是 每條線段可以任意長,...

區間覆蓋問題 貪心求解

本題給定兩個整數n和t,n表示接下來會輸入n段區間,t表示需要覆蓋的區間為 1,t 題目要求利用輸入的n段區間來覆蓋 1,t 段,且選取數目最小。最終需要輸出最小段數,若給出的區間無法完全覆蓋 1,t 則輸出 1.本題需要用貪心的思路來求解。首先根據每段區間左端點由小到大排序,之後從第一段開始選取,...