【CSP-S2020】【Luogu P7075】儒略日

考场经验:这种大模拟题,算法时间复杂度允许的情况下,暴力枚举/预处理比 O(1) 的式子更保险。

本题先预处理4713.1.1BC~1599.12.31AD,把儒略日和日期对应,储存下来方便直接使用。

记1599.12.31AD对应的儒略日为 $b$,$R=r-b-1$,这样1600.1.1即为0

预处理一个400年内前 $i$ 年天数的总和 $s_i$、平年/闰年前 $i$ 个月的天数总和 $t_i$, $u_i$,用upper_bound找出 $R$ 对应的第几个400年,年,月。

注意:因为每年的1月1日对应数字0,一定要使用upper_bound!

血的教训:变量名不能用重,全局变量和main()中不能都有变量a!

十年OI一场空,1582敲成了1583,还不送去见那没脸见的祖宗!

posted @ 2021-08-05 23:25  蒟蒻魔芋汤  阅读(139)  评论(0编辑  收藏  举报