Sicily 會議安排 演算法期末機考模擬題

2021-08-03 12:10:24 字數 835 閱讀 2370

n個會議要同時舉行,參會人數分別為a[0], a[1], …, a[n-1]. 現有m個會議室,會議室可容納人數分別為b[0], b[1], …, b[m-1]. 當a[i]<=b[j]時,可以把會議i安排在會議室j,每間會議室最多安排乙個會議,每個會議最多只能安排乙個會議室. 求最多安排多少個會議.

1 <= n, m <= 100000, 每個會議的參會人數和每間會議室的容納人數均在1和1000之間.

請為下面的solution類實現解決上述問題的函式assignconferenceroom. 函式引數a和b的意義如上,返回值為最多可安排的會議數.

class solution 

};

例1:a=, b=,答案為1.

例2:a=,b=,答案為2.

簡單的貪心,為了舉辦盡可能多的會議,優先滿足人數最少的會議。安排會議室時,將會議匹配到能容納這麼多人的最小會議室。將會議按人數,會議室按容量從小到大排序後匹配即可。

一開始我用的是自己寫的氣泡排序,超時了,改用快排sort後ac。

class

solution

} for(int

i = b.size() - 1; i > 0; i--)

} */

sort(a.begin(), a.end());

sort(b.begin(), b.end());

for(int

i = 0, j = 0; i

< a.size() && j < b.size();)

else j++;

}return count;

}};

sicily 1001 會議安排

time limit 1sec memory limit 256mb description n個會議要同時舉行,參會人數分別為a 0 a 1 a n 1 現有m個會議室,會議室可容納人數分別為b 0 b 1 b m 1 當a i b j 時,可以把會議i安排在會議室j,每間會議室最多安排乙個會議,...

Sicily 1001 會議安排

n個會議要同時舉行,參會人數分別為a 0 a 1 a n 1 現有m個會議室,會議室可容納人數分別為b 0 b 1 b m 1 當a i b j 時,可以把會議i安排在會議室j,每間會議室最多安排乙個會議,每個會議最多只能安排乙個會議室.求最多安排多少個會議.1 n,m 100000,每個會議的參會...

Sicily 最大和 期末演算法機考模擬題

從數列a 0 a 1 a 2 a n 1 中選若干個數,要求相鄰的數不能都選,也就是說如果選了a i 就不能選a i 1 和a i 1 求能選出的最大和.1 n 100000,1 a i 1000 請為下面的solution類實現解決上述問題的函式maxsum,函式引數a是給出的數列,返回值為所求的...