思路:
本題比較複雜,但是並不難,關鍵在於找每乙個時間段有空的人數以及解決輸入輸出問題。
1.構建時間類date,年月日小時分鐘秒,實現基本的運算符號過載。
2.初始化變數,輸入每個成員事務的時間點,對所有時間點公升序排序,從最左側開始,首先確定空閒時間段最長的右邊界,此時間滿足最少兩人有空且缺席的不能超過乙個人。然後確定下一輪時間段。
**:
#include
#include
#include
#include
using
namespace std;
const
int maxn=
30000
;struct date
date
(int _y,
int _m,
int _d,
int _h,
int _m,
int _s):y
(_y),m
(_m),d
(_d),h
(_h),m
(_m),s
(_s)
bool
operator
<
(const date &x)
const
bool
operator!=(
const date &x)
const
bool
operator==(
const date &x)
const
bool
operator
<=
(const date &x)
const
date operator+(
int x)
while
(temp.d>30)
while
(temp.m>12)
return temp;
}}a[maxn]
;int idx,num;
vector v;
string str;
intmain()
}sort
(a+1
,a+idx+1)
; date st
(1800,1
,1,0
,0,0
);date ed
(2200,1
,1,0
,0,0
);int flag;
if(a[1]
==st)
flag =0;
else
for(
int i=
1;i<=idx;i++
) i--;if
(flag)
}else}}
if(flag)
v.push_back
(ed)
;int lab=0;
cout<<
"scenario #"
<":"
int i=
1;isize()
;i+=2)
}if(!lab)
cout<<
}
week10限時模擬
東東轉魔方 注意在某段連續s 連續t的字串中,若tnum snum,那麼此時刪除完st之後,t會剩餘,這些剩餘的t不會再有用處,即不會再用這些t構成st。但是,若刪除完st之後,s剩餘,那麼這些s是有用的!舉個例子,sssstttstt sssttstt sststt sstt st 空,連續的s ...
Week10限時大模擬
a題 簽到題 東東有乙個字串x,該串包含偶數個字元,一半是 s 字元,一半是 t 字元 東東可以對該字串執行 1010000 次操作 如果存在 st 是該串的子串,則刪除掉最左邊的 st。即 tsttss ttss sssttt sstt st 空 include include using nam...
Week10 限時大模擬 A 簽到題
problem statement 東東有乙個字串x,該串包含偶數個字元,一半是 s 字元,一半是 t 字元 東東可以對該字串執行 1010000 次操作 如果存在 st 是該串的子串,則刪除掉最左邊的 st。即 tsttss ttss sssttt sstt st 空 input 2 x 200,...