思路
大體思路是把所有的間隔小於a的區間合併作為活動的時間,然後再看合併完的時間是否超過了b。但是在實現的時候有很多細節。首先定義乙個時間類,過載小於號。然後以此定義時間區間類。有一種特殊情況是合併之後剩下的乙個區間小於a,也是不可以的。
**
#include
#include
#include
#include
#include
#include
using
namespace std;
struct time
time operator-(
const time& t)
if(tt.mintt.min-
=t.min;
tt.h-
=t.h;
return tt;
}bool
operator
<
(const time& t)
bool
operator
>
(const time& t)
time&
operator=(
const time& t)};
time mins
(time& t)
tt.min--
;return tt;
}time pls
(time& t)
if(tt.h==
24)
tt.h=0;
return tt;
}struct interval
interval
(struct time _st,
struct time _et)
;bool
operator
<
(const interval& t)
interval&
operator=(
const interval& t)};
interval itv[30]
;int a,b,n,num;
intmain()
sort
(itv+
1,itv+
1+num)
;for
(int i=
1; iif(num!=
1&& itv[1]
.st-itv[num]
.edfor(
int i=
1;i<=num; i++)}
if(!***)
if(num==
1&& itv[1]
.st-itv[1]
.edcout<<
"yes"
int i=
1; i<=num; i++
)else}}
return0;
}
week14限時模擬
解題思路 用兩段時間分別記錄睡覺和活動 貓貓在兩段劇的間隔為a,那麼要判斷連續睡覺時間a與a的關係,如果ab那就直接no。注意熬夜的情況需要另外算,在計算的時候全部轉化成分鐘計算,比較方便。include include using namespace std const int maxn 25 c...
Week 14 限時大模擬 貓睡覺問題
多組資料,多組資料,多組資料哦,每組資料的格式如下 第1行輸入三個整數,a 和 b 和 n 1 a 24,1 b 24,1 n 20 第2到n 1行為每日的新番時間表,每行乙個時間段,格式形如 hh mm hh mm 閉區間 這是一種時間格式,hh mm 的範圍為 00 00 到 23 59。注意一...
week14 限時大模擬A貓睡覺問題
input 多組資料,多組資料,多組資料哦,每組資料的格式如下 第1行輸入三個整數,a 和 b 和 n 1 a 24,1 b 24,1 n 20 第2到n 1行為每日的新番時間表,每行乙個時間段,格式形如 hh mm hh mm 閉區間 這是一種時間格式,hh mm 的範圍為 00 00 到 23 ...