SDUT 1298 活動選擇

2021-08-19 13:48:04 字數 1296 閱讀 4635

活動選擇

time limit: 1000 ms memory limit: 65536 kib

problem description

學校的大學生藝術中心週日將面向全校各個學院的學生社團開放,但活動中心同時只能供乙個社團活動使用,並且每乙個社團活動開始後都不能中斷。現在各個社團都提交了他們使用該中心的活動計畫(即活動的開始時刻和截止時刻)。請設計乙個演算法來找到乙個最佳的分配序列,以能夠在大學生藝術中心安排不衝突的盡可能多的社團活動。

比如有5個活動,開始與截止時刻分別為:

最佳安排序列為:1,4,5。

input

第一行輸入活動數目n(0<n<100);

以後輸入n行,分別輸入序號為1到n的活動使用中心的開始時刻a與截止時刻b(a,b為整數且0<=a,b<24,a,b輸入以空格分隔)。

output

輸出最佳安排序列所包含的各個活動(按照活動被安排的次序,兩個活動之間用逗號分隔)。

sample input

6 8 10

9 16

11 16

14 15

10 14

7 11

sample output

1,5,4

#include 

#include

using

namespace

std;

struct node ;

bool cmp (struct node x, struct node y)

int main()

sort(x+1,x+n+1,cmp);

temp=0;

t=0;

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

}for(i=1;i<=t;i++)

return

0;}

1.對於活動,我們應該明白,決定能進行個數的並不是開始時間,而是結束時間。

2.因為,乙個節目開始的早並不能保證下乙個節目開始的早,但乙個節目結束的早一定能保證下乙個節目開始的早。

3.如果你明白這個概念,那麼這個**思路很好理解。我們用引數來表示這個活動的結束時間,然後遍歷其後面具有潛在可能開始的元素,判斷其開始時間能否進行,注意,這裡是潛在的,只要你明白這個,就很好理解。

4.這裡使用函式提供的快排,這裡的快排是存在於algorithm函式庫中的,定義函式排序的大小是按照你傳入的引數來決定的,第乙個a,第二個b,那麼a代表開頭,b代表結尾。a表示依次增大,而相反表示依次結束,你明確這個就會很好理解的。

1298活動選擇(貪心)

學校的大學生藝術中心週日將面向全校各個學院的學生社團開放,但活動中心同時只能供乙個社團活動使用,並且每乙個社團活動開始後都不能中斷。現在各個社團都提交了他們使用該中心的活動計畫 即活動的開始時刻和截止時刻 請設計乙個演算法來找到乙個最佳的分配序列,以能夠在大學生藝術中心安排不衝突的盡可能多的社團活動...

OJ 1298 活動選擇

time limit 1000 ms memory limit 65536 kib submit statistic problem description 學校的大學生藝術中心週日將面向全校各個學院的學生社團開放,但活動中心同時只能供乙個社團活動使用,並且每乙個社團活動開始後都不能中斷。現在各個社...

sdut 活動選擇問題

time limit 1000ms memory limit 65536kb submit statistic discuss problem description sdut 大學生藝術中心每天都有n個活動申請舉辦,但是為了舉辦更多的活動,必須要放棄一些活動,求出每天最多能舉辦多少活動。input...