區間相交問題 貪心演算法

2022-09-12 09:21:13 字數 951 閱讀 4136

(1)問題描述:

給定x 軸上n 個閉區間。去掉盡可能少的閉區間,使剩下的閉區間都不相交。

(2)程式設計任務:

給定n 個閉區間,程式設計計算去掉的最少閉區間數。

(3)資料輸入:

第一行是正整數n,表示閉區間數。接下來的n行中,每行有2 個整數,分別表示閉區間的2個端點。

(4)結果輸出:

計算出的去掉的最少閉區間數。

(5)輸入示例

10 20

10 15

20 15

(6)輸出檔案示例

2  分析:輸入x1,y1.x2,y2... ,[x1,y1]是乙個區間,把每個區間以y為參照按照從小到大排序,然後再進行選擇,比較xi和yi-1

#include using

namespace

std;

class

data

ints,f;

};void sort(data *d,int

n) }

//如果本次排序沒有進行一次交換,則break,減少了執行之間。

if(flag == 0

) }

}int geedyselector(int n,int s,int f,bool

a) sort(d,n);

/*for(int i=1;i<=n;i++)

else

}int count=0

;

for(int i=1;i<=n;i++)

}return

count;

}int

main()

bool

a[n];

int m=geedyselector(n,s,f,a);

cout

<<"

剩餘區間的個數

"return0;

}

貪心演算法 區間問題

區間選單個點 問題描述 數軸上有n個閉區間 ai,bi 取盡量少的點,使得每個區間內都至少有乙個點 不同區間內含的點可以是同乙個 輸入 第1行 乙個整數n 接下來n行,每行2個整數ai,bi 輸出 乙個整數,表示滿足條件的最少點數。樣例輸入 5 4 62 3 1 46 8 5 7 樣例輸出 2策略分...

區間排程問題 貪心演算法

問題 有 n 項工作,每項工作分別在 s i 時間開始,在 t i 時間結束 對於每項 工作,你都有可以選擇參與與否。如果選擇了參與,那麼自始自終都必須全程參與。此外,參與工作的時間段不能重疊 即使是開始的瞬間和結束的瞬間的重疊也 是不允許的 include include include usin...

貪心演算法 區間找點問題

找點 時間限制 2000 ms 記憶體限制 65535 kb 難度 2 描述 上數學課時,老師給了lyh一些閉區間,讓他取盡量少的點,使得每個閉區間內至少有乙個點。但是這幾天lyh太忙了,你們幫幫他嗎?輸入 多組測試資料。每組資料先輸入乙個n,表示有n個閉區間 n 100 接下來n行,每行輸入兩個數...