問題描述:設x2,x2,....,xn是實直線上的n個點。用固定長度的閉區間覆蓋著n個點,至少需要多少個這樣的長度閉區間?設計解決此問題的有效演算法。
演算法設計:對於給定的實直線上的n個點和閉區間的長度k,計算覆蓋點集的最少區間數。
資料輸入:第一行有兩個整數n和k,表示有n個點,且固定長度閉區間的長度為k。接下來一行中有n個整數,表示n個點在實直線上的座標(可能相同)
結果輸出:將計算的最少區間數輸出
**:
#include
void sort(int a,int n);
int cover(int a,int n,int k);
int main()
void sort(int a,int n)
}int cover(int a,int n,int k)
{sort(a,n);
int sum=0;//用於記錄區間個數
int t=0; //用於標記已被覆蓋的點序號
int start=0;
while(t執行截圖:
1751 區間覆蓋問題
time limit 1000 ms memory limit 65536 kib problem description 設x1 x2 xn 是實直線上的n 個點。用固定長度的閉區間覆蓋這n 個點,至少需要多少個這樣的固定長度閉區間?對於給定的實直線上的n個點和閉區間的長度k,設計解此問題的有效演...
(1)區間完全覆蓋問題(最少)
核心就是找右端點最大值 include include define n 1005 using namespace std struct node str n bool cmp node x,node y else int main sort str,str m,cmp for int i 0 i ...
sdutoj 2074 區間覆蓋問題
用 m mm 條線段覆蓋住 n nn 個小區間,求 m mm 條線段的最小長度和。1 當 m mm 大於等於 n nn 時,直接輸出 n nn 即可。2 當 m mm 小於 n nn 時,先將 n nn 個區間從小到大排好序,區間的總長度便可知道。用 m mm 條線段覆蓋,也就是在這片區間上進行 m...