CCF認證201709 2公共鑰匙盒

2021-10-04 05:50:09 字數 1653 閱讀 5066

ccf認證201709-2公共鑰匙盒

吐槽一下:

不知道是不是我的方法有問題,雖然思路挺簡單的,但是感覺**量對於第二題來說有一點點大呀。

分析題目:

1、建立teacher結構(鑰匙編號,上課開始時間,上課結束時間),鑰匙儲存陣列seq,上課開始時間有序陣列school_begin,上課結束時間有序陣列school_end;

2、對鑰匙陣列seq進行初始化;

3、依次把資料讀入,新建teacher,分別讀入上課開始時間有序陣列school_begin和上課結束時間有序陣列school_end;

4、用sort使得school_begin和school_end有序;

5、依次遍歷school_begin取鑰匙(把seq裡相應鑰匙的位置置為0),但是注意取鑰匙前,要把當前時間之前的已經上完課的鑰匙全部還了(把相應的鑰匙放到seq裡第乙個為0的位置,在school_end裡刪除這個元素);

6、迴圈5至結束;

7、列印seq。

環境

visual c++6.0

#include

#include

#include

//#include

using

namespace std;

struct teacher};

bool

cmp_begin

(teacher a, teacher b)

bool

cmp_end

(teacher a, teacher b)

intmain()

sort

(school_begin.

begin()

, school_begin.

end(

), cmp_begin)

;//上課開始時間從小到大排序

sort

(school_end.

begin()

, school_end.

end(

), cmp_end)

;//上課結束時間從小到大排序

for(

int iii=

0; iiischool_end.

erase

(school_end.

begin()

+jj)

;//由於已經還了鑰匙,把這個記錄刪除

jj--;}

}//再取一把鑰匙

for(

int j=

0; j}//把剩下的鑰匙都還了

for(

int jjj=

0; jjjsize()

; jjj++)}

school_end.

erase

(school_end.

begin()

+jjj)

;//由於已經還了鑰匙,把這個記錄刪除

jjj--;}

for(

int x=

0; xsize()

; x++

)return0;

}

CCF 201709 2 公共鑰匙盒

試題編號 201709 2 試題名稱 公共鑰匙盒 問題描述 有乙個學校的老師共用n個教室,按照規定,所有的鑰匙都必須放在公共鑰匙盒裡,老師不能帶鑰匙回家。每次老師上課前,都從公共鑰匙盒裡找到自己上課的教室的鑰匙去開門,上完課後,再將鑰匙放回到鑰匙盒中。鑰匙盒一共有n個掛鉤,從左到右排成一排,用來掛n...

CCF 201709 2 公共鑰匙盒

問題描述 試題編號 201709 2 試題名稱 公共鑰匙盒 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 有乙個學校的老師共用n個教室,按照規定,所有的鑰匙都必須放在公共鑰匙盒裡,老師不能帶鑰匙回家。每次老師上課前,都從公共鑰匙盒裡找到自己上課的教室的鑰匙去開門,上完課後,再將...

CCF 201709 2 公共鑰匙盒

試題編號 201709 2 試題名稱 公共鑰匙盒 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 有乙個學校的老師共用n個教室,按照規定,所有的鑰匙都必須放在公共鑰匙盒裡,老師不能帶鑰匙回家。每次老師上課前,都從公共鑰匙盒裡找到自己上課的教室的鑰匙去開門,上完課後,再將鑰匙放回到...