(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 usingnamespace
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行,每行輸入兩個數...