解題思路
把時間轉換成分鐘,好進行比較
設定乙個ptp結構體,記錄一段開始結束的時間
一開始的輸入,記錄在rem陣列裡面
並且按照start的公升序排列
並且因為每天的表都是一樣的
所以要把第乙個番的時間填到最末尾
這樣就可以前後2天聯絡起來
然後找出合法的睡覺時間
記錄下來
並且把超出今天的部分,轉移到今天開始的地方
並且要把第乙個番也放到最後
為了前後2天能聯絡起來
然後比較是否醒來的時間超時了
最後得出結果
**實現
#include
#include
#include
#include
using
namespace std;
int a,b,n;
void
input
(string t,
int&t1,
int&t2)
//轉為分鐘
struct ptp};
ptp rem[
200]
;ptp sleep[
200]
;int si;
void
out(
int i)
;int
main()
sort
(rem+
1,rem+n+1)
; rem[n+1]
.start = rem[1]
.start+24*
60, rem[n+1]
.end = rem[1]
.end +24*
60;//找出睡覺時間
for(
int i=
1;i<=n;i++)}
for(
int i=
1;i<=si-
1;i++
)//把超出今天的,平移到今天的開始位置
sort
(sleep+
1,sleep+si)
; sleep[si]
.start = sleep[1]
.start+24*
60,sleep[si]
.end=sleep[1]
.end+24*
60;bool flag=1;
//比較醒來的時間,如果超了,就no
for(
int i=
1;i<=si-
1;i++)}
if(!flag || si==1)
else
// memset(rem,0,sizeof rem);
// memset(sleep,0,sizeof sleep);
}return0;
}void
out(
int i)
else
cout<<
":";
if(min_s <10)
else
cout<<
"-";
if(hour_e <10)
else
cout<<
":";
if(min_e <10)
else
cout<
}
week14 實驗A 貓睡覺問題
樣例輸入 12 12 1 23 00 01 00 3 4 3 07 00 08 00 11 00 11 09 19 00 19 59 樣例輸出 yes101 07 22 13 no在剛看到這題的時候,感覺和之前的time planner很像,但是還是有很多細節不同,在實驗課上一直不知道怎麼處理好。把...
Week 14 模擬 A 貓睡覺問題
總結 這是個鏈結 多組資料,多組資料,多組資料哦,每組資料的格式如下 第1行輸入三個整數,a 和 b 和 n 1 a 24,1 b 24,1 n 20 第2到n 1行為每日的新番時間表,每行乙個時間段,格式形如 hh mm hh mm 閉區間 這是一種時間格式,hh mm 的範圍為 00 00 到 ...
A 貓睡覺問題(week14模擬)
no1 準確理解題意,剛開始並沒有完全理解題意,導致寫題寫的很糊塗,把題理解成在1 2天範圍內的時間安排表做好 2 將時間統一格式,全部用分鐘表示,剛開始試圖用 小時 分鐘 形式,但是開閉區間以及時間比較的時候出現了一些問題,導致一直wa,因此下次對於這種時間比較問題最好將時間轉化為乙個整數 3 注...