NYOJ 貪心演算法14 會場安排問題

2021-08-22 14:58:08 字數 1058 閱讀 1471

時間限制:3000 ms  |  記憶體限制:65535 kb

難度:3

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

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

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

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

每組的輸出佔一行

樣例輸入

2

21 10

10 11

31 10

10 11

11 20

樣例輸出

1

2

提示

貪心演算法(又稱貪婪演算法)是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。

貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性,即某個狀態以前的過程不會影響以後的狀態,只與當前狀態有關。

解題思路:對每個活動的結束時間進行有小到大排序。因為結束時間越早,就可以留下更多的時間去安排後面的活動,這裡並不是你開始的越早,安排的活動就越多,這要看活動的時長。因此直接比較每個活動結束時間就ok。

(1)首先我用到了結構體來記錄每個活動的開始和結束時間。

(2)寫乙個sort從小到大排序只比較結束時間。

(3)讓當前活動的開始時間與之前活動的結束時間做比較。如果開始時間大於結束時間,則活動數量加1;並將當前活動的結束時間作為標準,和下乙個活動的開始時間作比較。

**如下:

#include #include #include using namespace std;

struct timea[10005];

bool cmp(time a,time b)

}printf("%d\n",sum);

}return 0;

}

貪心演算法 nyoj 14 會場安排

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

貪心演算法之 會場安排(nyoj14)

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

nyoj 14 會場安排問題 貪心演算法

貪心演算法 又稱貪婪演算法 是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性,即某個狀態以前的過程不會影響以後的狀態,只與當...