NYOJ 14 會場安排問題

2021-07-11 20:15:19 字數 1435 閱讀 3814

描述

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

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

每組測試資料的第一行是乙個整數n(1 < n < 10000)表示該測試資料共有n個活動。

隨後的n行,每行有兩個正整數bi,ei(0<=bi,ei<10000),分別表示第i個活動的起始與結束時間(bi<=ei)

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

每組的輸出佔一行

樣例輸入

2 2

1 10

10 11

3 1 10

10 11

11 20

樣例輸出 1 2

一道簡單的區間問題,雖然問題核心很簡單,但是不使用快排進行排序就會超時,如果是用c++寫,那就會十分省事,但是如果用c寫,就有一些小難了,畢竟需要寫很長的快排**……

**(c):

#include 

#define maxsize 10001

typedef

struct

party;

//交換l陣列r的下標為i和j的值

void swap(party *p, int i, int j)

//交換順序表l中子表的記錄,使樞軸記錄到位,並返回其所在位置

//此時在它之前(後)的記錄均不大於它

int partition(party *p, int low, int high)

swap(p, low, high); //將比樞軸記錄小的記錄交換到低端

while (low < high && p[low].ei <= pivotkey)

swap(p, low, high); //將比樞軸記錄大的記錄交換到高階

}return low; //返回樞軸所在位置

}//對順序表l中的子串行l->r[low...high]作快速排序

void qsort(party *l, int low, int high)

}int main(int argc, const

char * argv)

qsort(p, 1, n);

int num = 1;

int flage = p[1].ei;

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

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

}return

0;}

nyoj 14 會場安排問題

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

NYOJ 14 會場安排問題

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

nyoj 14 會場安排問題

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