CSP 201709 2 公共鑰匙盒

2021-09-12 21:24:14 字數 1207 閱讀 3298

思路

我的思路是:

首先對資料進行分析:

使用者輸入的是編號、借鑰匙的時刻、借鑰匙的時間。

所以不妨我們把資料轉化為編號、借/換的時刻、flag標記這個時刻是在借or還鑰匙。

首先應該建立乙個物件,這個物件有時刻、flag標記、鑰匙編號id這三個屬性。

所以我們可以設定兩個儲存這個物件的vector陣列 arr1 arr2 來分別儲存借的和還的時刻。

演算法分析:

對arr1 arr2 進行合併,然後進行排序(注意,這裡的排序是這個題的核心,我們既要滿足先借後還、同時還的話編號小的優先、一借一還應該先

c++ ac

#include

#include

#include

#include

#include

//萬能標頭檔案,囊括一切

using

namespace std;

class

key//定義物件,具有鑰匙編號,借/還的時刻,flag標記是要借還是還};

vector arr1;

vector arr2;

bool

postive_sort

(key s1,key s2)

//通過排序可以使其滿足老師借還鑰匙的三個條件

else

}int

main()

vector

::iterator it;

//定義vector陣列對應的迭代器

for(

int i=

0; i)for

(it =arr2.

begin()

; it!=arr2.

end(

); it++

)sort

(arr1.

begin()

,arr1.

end(

),postive_sort)

;//利用自己定義的多字段sort方法來對vector陣列進行排序

for(it=arr1.

begin()

; it!=arr1.

end(

); it++)}

}if((

*it)

.flag==1)

}}}for

(int i=

0; i)}

最後忠心祝願大家能在ccf認證中取得好成績!

csp 201709 2 公共鑰匙盒

解釋 重點是看清楚第三段文字給出的條件,我就是落下了乙個條件,雖然給出的兩組測試通過了但是只得了40分。問題描述 有乙個學校的老師共用n個教室,按照規定,所有的鑰匙都必須放在公共鑰匙盒裡,老師不能帶鑰匙回家。每次老師上課前,都從公共鑰匙盒裡找到自己上課的教室的鑰匙去開門,上完課後,再將鑰匙放回到鑰匙...

CSP 201709 2 公共鑰匙盒

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

201709 2 公共鑰匙盒

注意審題,注意題目關鍵字,比如,還鑰匙時間相同時,按照編號放置 還有就是 對於第二題,一般都不太難,沒有什麼演算法可言,直接使用正常思維就好了,不要怕麻煩,簡單粗暴就好 給自己加油 include include include include include include include inc...