F 日期小助手

2021-10-05 08:53:20 字數 1642 閱讀 2958

f.日期小助手

作為乙個關心父母的孩子,compute 會在每年的母親節和父親節為父母準備禮物。可是粗心的他卻不記得它們的具體日期了。

已知:母親節在每年 5 月的第 2 個週日;父親節在每年 6 月的第 3 個週日。

現在你需要告訴他,下乙個(不包括當天)母親節或父親節是在什麼時候。

第一行包含乙個整數 t (t≤100),表示測試資料的組數。

對於每組資料,包含三個整數 y, m, d,中間以空格分隔,分別表示今天的年、月、日。

輸入保證是乙個在公元 2000 年 1 月 1 日 到 2100 年 12 月 31 日間的合法日期。

輸出描述:

對於每組資料,在一行輸出下乙個需要準備禮物的節日和日期。格式參考樣例輸出。

72000 1 1

2001 1 1

2002 1 1

2003 1 1

2020 1 1

2020 5 10

2020 6 21

mother』s day: may 14th, 2000

mother』s day: may 13th, 2001

mother』s day: may 12th, 2002

mother』s day: may 11th, 2003

mother』s day: may 10th, 2020

father』s day: june 21st, 2020

mother』s day: may 9th, 2021

題解:模擬+吉姆拉爾森計算星期公式

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

const ll maxn=

1e6+10;

const ll inf=

0x3f3f3f3f3f3f3f3f

;voidio(

)string str[50]

=;ll s_day

(ll y,ll m,ll d);if

(y%4==0

&&y%

100!=

0||y%

400==0)

flag=1;

for(

int i=

0;i)return day;

}ll get_week

(ll y,ll m,ll d)if(

(d+2

*m+3

*(m+1)

/5+y+y/

4-y/

100+y/

400+1)

%7==0

)return7;

else

return

(d+2

*m+3

*(m+1)

/5+y+y/

4-y/

100+y/

400+1)

%7;}

intmain()

return0;

}

科大訊飛杯 日期小助手

作為乙個關心父母的孩子,compute 會在每年的母親節和父親節為父母準備禮物。可是粗心的他卻不記得它們的具體日期了。已知 母親節在每年 5 月的第 2 個週日 父親節在每年 6 月的第 3 個週日。現在你需要告訴他,下乙個 不包括當天 母親節或父親節是在什麼時候。第一行包含乙個整數 t t leq...

牛客 F日期小能手

題目鏈結 這道題,思路就是找到6.1,和5.1是週幾,然後再把日期加上去,想法是直接暴算,但是因為我又菜又懶,就放棄了這個題,後來補題的時候,看到大佬的 有公式可以計算某一天日期是週幾,並且,可以先進行預處理這樣更方便了,偷學了一手,確實,有奇效。這裡留一下大佬的 以便日後參考和學習 include...

科大訊飛杯 日期小助手(補)

思路 找規律發現母親節出現的日期在8 14之間,若x 8則x x 7 15,父親節出現的日期在15 21之間,若x 15則x x 7 22,賽時忘記掉2100年不是閏年了真的找bug找吐了 include include typedef long long ll using namespace st...