[THUPC2019]历史行程

[THUPC2019]历史行程

题目背景

人生是怎么样的呢?我们是怎样活着的呢?

无论是谁,都是从黑暗中降生,最后再回归于黑暗。几年,几十年,短暂而漫长的时光。形形色色的人,形形色色的事,如过眼云烟,转瞬即逝。过眼繁花终有尽时,有些东西还能弥留于你的记忆之中,但更多的,早已无可寻觅。

但是,有个人,你不会忘记。

在你降生于黑暗之中时,那个人就一直陪在你身边。当你突破那黑暗,第一次见到世界的光明的时候,那个人也在你身边。

第一次的啼哭,第一次的说话,第一次的走路,第一次的奔跑。

每一次的成长,是你自己的一次飞跃。而对那个人来说,则是最纯真的喜悦和感动。

在你不知道的时候,在你不知道的地方,那个人倾尽自己的一切,为你创造最好的一切,保护你的一切,为你指引走向未来的桥梁。

那个人每天都在期盼着,期盼着你能早点长大,变得拥有保护你自己的力量。

那个人每天都在担心着,担心着你与那个人分别那天,终究还是会来到。

你终究会一直成长,你终究会拥有自立自强的能力。那个人,也不能再像以前一样,保护你。

有一天,你将走向更宽阔的未来,你会拥有和以前完全不一样的一切。而那个人,已经不再能够保护你了。

而你和那个人之间能够拥有的时间,也就越来越短了。

五年,十年,二十年,你一天一天长大。

五年,十年,二十年,那个人一天天老去。

那个人已经不能保护你了,那么现在,该你,去保护那个人了。

也许那个人不能永远在你身边,也许那个人终将离你而去。

但你永远不会忘记那个人,因为那个人,始终在你身边。

今天,是那个人的节日。

题目描述

母亲节是一个为感谢母亲而庆祝的节日,而在世界各地的母亲节的日期有所不同。母亲们在这一天里通常会收到孩子们送的礼物;而在许多人心目中,康乃馨被视作最适于献给母亲的鲜花之一。 1913 年,美国国会确定将每年 5 月的第二个星期日作为法定的母亲节,这也是现代母亲节的起源。 给定一个年份,请你输出这一年的母亲节的日期。方便起见,你只需要输出它是这年 5 月的第几天即可。

输入格式

一行一个整数 y,表示年份。 保证 1913≤y≤2019。

输出格式

一行一个整数,表示这年的母亲节是 5 月的第几天。(请注意不要输出多余的前导零)

样例数据

样例输入#1

2019

样例输出#1

12

样例解释

2019 年的母亲节是 5 月 12 日。

说明

来自 THUPC(THU Programming Contest,清华大学程序设计竞赛)2019。

题解

母亲节在每年5月第2个星期日,就在5月的前2周内。求出5月14日为星期w,母亲节即为14-w。w=0表示星期日,w=1表示星期一,……,w=6表示星期六。

1913年5月14日是星期三,所以计算到y年5月14日的天数就可以求得星期。

源代码

#include <iostream>
using namespace std;

// (l,r]区间内m的倍数的个数
int multiple(int l, int r, int m) {
	return r/m - l/m;
}

// 闰年个数
int leap(int from, int to) {
	return multiple(from, to, 4) - multiple(from, to, 100) + multiple(from, to, 400);
}

int main() {
	int y;
	cin >> y;

	int days = (y - 1913) * 365 + leap(1913, y);
	int wday = (days + 3) % 7; // 1913年5月14日星期三
	int mday = 7 * 2 - wday; // 2周

	cout << mday << endl;

	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值