NYOJ 14 會場安排問題(也算是經典問題了)

2021-06-26 21:35:15 字數 1158 閱讀 5522

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:4 描述

學校的小禮堂每天都會有許多活動,有時間這些活動的計畫時間會發生衝突,需要選擇出一些活動進行舉辦。小劉的工作就是安排學校小禮堂的活動,每個時間最多安排乙個活動。現在小劉有一些活動計畫的時間表,他想盡可能的安排更多的活動,請問他該如何安排。

輸入第一行是乙個整型數m(m<100)表示共有m組測試資料。

每組測試資料的第一行是乙個整數n(1

輸出對於每一組輸入,輸出最多能夠安排的活動數量。

每組的輸出佔一行

樣例輸入

2

21 10

10 11

31 10

10 11

11 20

樣例輸出

1

2

提示

演算法分析:

不重疊區間排程問題,一般會有三種可想到的演算法:

1.在可選的工作中,每次都選取結束時間最早的工作。

2.在可選的工作中,每次都選取用時最短的工作。

3.在可選的工作中,每次都選取與最少可選工作有重疊的工作。

事實證明,只有一才是正確經得住考驗的。

對於第一種演算法,該演算法在選取了相同數量的更早開始的工作時,其最終結束時間不會比其他方案更晚。

也就是說,最早結束的那條區間後面的數量一定大於等於其他後面區間的區間數量。

具體證明請參考:

**如下:

#include#include#includeusing namespace std;

typedef pairname;

name arr[10005];

int cmp(name a,name b)

{return a.second>n;

while(n--)

{ cin>>n;

for(i=0;i>arr[i].first>>arr[i].second;

sort(arr,arr+n,cmp);

ans=0,t=-1;

for(i=0;i

NYOJ 14 會場安排問題(也算是經典問題了)

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述學校的小禮堂每天都會有許多活動,有時間這些活動的計畫時間會發生衝突,需要選擇出一些活動進行舉辦。小劉的工作就是安排學校小禮堂的活動,每個時間最多安排乙個活動。現在小劉有一些活動計畫的時間表,他想盡可能的安排更多的活動,請問他該如何...

nyoj 14 會場安排問題

選擇不相交的區間,不過這道題數有點大。我好幾次超時。看了網上的一些改了很多。呃。都快改的和人家一樣了。主要是用了乙個資料結構struct和algorithm。否則超時,因為algorithm用的是快速排序,效率很高!include include include using namespace st...

NYOJ 14 會場安排問題

中文題意 中文翻譯 題目大意 求會場的最大安排數,乙個時間內只能安排乙個活動 難點詳解 掌握一級結構體的快排和比較的知識 這種快排現在還不是很熟 關鍵點 貪心 解題人 lingnichong 解題感受 和杭電的 今年暑假不ac 是一樣的題 時間限制 3000 ms 記憶體限制 65535 kb 難度...