思路一:簡單粗暴的模擬,以時間為線索,將取鑰匙和還鑰匙的時間進行進行排序,然後按時間迴圈,到達某時間點時執行取鑰匙或者還鑰匙操作;
思路二:以取還鑰匙的動作為線索,當時間跨度大時可以省去很多不必要的迴圈;
思路一:
// 思路一
/*公共鑰匙盒
思路:設定兩個陣列,乙個按取鑰匙的時間進行排序,
再乙個按還鑰匙的時間進行排序,按著時間走進行取還操作
*/ #include#include#includeusing namespace std;
const int n=1001;
int keybox[n];
struct stateintial[n],final[n];
bool cmp1(state s1,state s2)
//按時間順序取換鑰匙
sort(intial,intial+k,cmp1);
sort(final,final+k,cmp2);
int flag_f=0,flag_i=0;
for(int i=1;i<=maxtime;i++)
//再取
for(int m=flag_i;mi) break;
} }for(int i=0;i思路二
ps:寫**真是巨坑的事,總是錯了n次之後發現死在莫名其妙的地方,心累。。。
CCF 公共鑰匙盒
問題描述 有乙個學校的老師共用n個教室,按照規定,所有的鑰匙都必須放在公共鑰匙盒裡,老師不能帶鑰匙回家。每次老師上課前,都從公共鑰匙盒裡找到自己上課的教室的鑰匙去開門,上完課後,再將鑰匙放回到鑰匙盒中。鑰匙盒一共有n個掛鉤,從左到右排成一排,用來掛n個教室的鑰匙。一串鑰匙沒有固定的懸掛位置,但鑰匙上...
CCF 公共鑰匙盒
問題描述 有乙個學校的老師共用n個教室,按照規定,所有的鑰匙都必須放在公共鑰匙盒裡,老師不能帶鑰匙回家。每次老師上課前,都從公共鑰匙盒裡找到自己上課的教室的鑰匙去開門,上完課後,再將鑰匙放回到鑰匙盒中。鑰匙盒一共有n個掛鉤,從左到右排成一排,用來掛n個教室的鑰匙。一串鑰匙沒有固定的懸掛位置,但鑰匙上...
ccf公共鑰匙盒
題目 試題名稱 公共鑰匙盒 時間限制 1.0s 記憶體限制 256.0mb 問題描述 有乙個學校的老師共用n個教室,按照規定,所有的鑰匙都必須放在公共鑰匙盒裡,老師不能帶鑰匙回家。每次老師上課前,都從公共鑰匙盒裡找到自己上課的教室的鑰匙去開門,上完課後,再將鑰匙放回到鑰匙盒中。鑰匙盒一共有n個掛鉤,...