ZOJ 3939 日期規律

2021-10-06 16:46:53 字數 2455 閱讀 8631

題目:click

題意:星期一在每個月的1號,11號,21號,則是幸運的,給定乙個時間,問從此開始的第n個幸運的日期是什麼。

n是非常大的,打表找個規律,從1753-1-1開始找1月1號的年份存下來,暴力找到是56,112,確定週期是52,相減得年份週期是400,之間有2058個幸運周。之後直接暴力即可。中途注意一些細節,可以帶入具體的邊界值進行運算規律。

(打表**)

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3f3f3f3f

#define llinf 0x3f3f3f3f3f3f3f3f

#define max_len 200005*4

using

namespace std;

typedef

long

long ll;

typedef pair<

int,

int> pp;

const

int mod=

998244353

;int a[20]

=;int b[10]

=;struct a que[

1000100];

int len=0;

intmain()

}if((year%4==

0&&year%

100!=0)

||year%

400==0)

else

day++

; xq++

; tot++;if

(xq>7)

xq-=7

;if(day>a[month])}

}int i;

len--

;for

(i=0

;i)// coutfor(

int temp=

1;temp<=

150;temp++)if

(i+temp>=len)

printf

("%d\n"

,temp);}

cout<.y<<

" "<.y<<

" "<.y-que[0]

.y

}

預先處理出2058*2的乙個迴圈表。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3f3f3f3f

#define llinf 0x3f3f3f3f3f3f3f3f

#define max_len 200005*4

using

namespace std;

typedef

long

long ll;

typedef pair<

int,

int> pp;

int a[20]

=;struct a

;map<

int,a>hh;

void

init()

if((year%4==

0&&year%

100!=0)

||year%

400==0)

else

day++

; xq++;if

(xq>7)

xq-=7

;if(day>a[month])}

}for

(int i=

1;i<=

2058

;i++)}

intmain()

} n--

;int t1=n/

2058

;int t2=y+

400*t1;

n-=t1*

2058

;while

(n--

) t2+

=hh[temp]

.y-temp1;

printf

("%d %d %d\n"

,t2,hh[temp]

.m,hh[temp]

.d);

}return0;

}

1 2 日期函式

1.2 日期函式select sysdate from dual 顯示的日期格式是系統預設格式 select to char sysdate,yyyy mon dd hh24 mi ss systime from dual 用途 使用者註冊時間的插入 insert into user table n...

201509 2 日期計算

試題編號 201509 2 試題名稱 日期計算 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 給定乙個年份y和乙個整數d,問這一年的第d天是幾月幾日?注意閏年的2月有29天。滿足下面條件之一的是閏年 1 年份是4的整數倍,而且不是100的整數倍 2 年份是400的整數倍。輸入格...

1928 日期差值

時間限制 1 sec 記憶體限制 32 mb 提交 2590 解決 640 提交 狀態 討論版 命題人 外部匯入 有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天。有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd 每組資料輸出一行,即日期差值 2...