今夕何夕

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 690    Accepted Submission(s): 211

Problem Description
今天是2017年8月6日,农历闰六月十五。

小度独自凭栏,望着一轮圆月,发出了“今夕何夕,见此良人”的寂寞感慨。

为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个日子,和今天的星期数一样?比如今天是8月6日,星期日。下一个也是星期日的8月6日发生在2023年。

小贴士:在公历中,能被4整除但不能被100整除,或能被400整除的年份即为闰年。

Input
第一行为T,表示输入数据组数。

每组数据包含一个日期,格式为YYYY-MM-DD。

1 ≤ T ≤ 10000

YYYY ≥ 2017

日期一定是个合法的日期

Output
对每组数据输出答案年份,题目保证答案不会超过四位数。
Sample Input
3 2017-08-06 2017-08-07 2018-01-01
Sample Output
2023 2023 2024
思路:模拟年份变化即可,注意特判的情况
AC代码:

#define _CRT_SECURE_NO_DEPRECATE
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<queue>
#include<set>
#include<vector>
#include<cstring>
#include<string>
#include<cmath>
using namespace std;int year, month, day;bool judge(int year) {//判断闰年if ((!(year % 4) && (year % 100)) || !(year % 400))return true;return false;
}
bool if_run = 0, if_hou = 0, special_judge = 0;
int main() {int t;scanf("%d", &t);while (t--) {scanf("%d-%d-%d", &year, &month, &day);special_judge = 0;if (judge(year)) {if_run = true;if (month == 2 || month == 1)if_hou = false;else if_hou = true;if (month == 2 && day == 29)special_judge = 1;}else {if_run = false;if (month == 2 || month == 1)if_hou = false;else if_hou = true;}int sum = 0;while (1) {if (!special_judge) {if (if_run) {if (if_hou) {sum += 365 % 7;if (!(sum % 7))break;}else {//非后面月份sum += 366 % 7;if (!(sum % 7))break;}}else {//非闰年if (if_hou) {if (judge(year + 1)) {sum += 366 % 7;if (!(sum % 7))break;}else {sum += 365 % 7;if (!(sum % 7))break;}}else {//非后面月份sum += 365 % 7;if (!(sum % 7))break;}}year++;if (judge(year))if_run = 1;else if_run = 0;}else {//特判if (judge(year + 4)) { sum += (365 * 3 + 366) % 7; if (!(sum % 7))break; }else sum += (365 * 4) % 7;year += 4;}}if (special_judge) { year += 4; printf("%d\n", year); }else printf("%d\n", ++year);}return 0;
}

转载于:https://www.cnblogs.com/ZefengYao/p/7351353.html

hdu 6112 今夕何夕相关推荐

  1. HDU 6112 今夕何夕【2017百度之星】【日期模拟计算】【基姆拉尔森计算公式】【蔡勒公式】

    今夕何夕 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  2. HDU 6112 今夕何夕 蔡勒公式

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6112题意:中文题目 分析:关键点在与如何计算一个日期是星期几,这个可以通过蔡勒公式来计算.基姆拉尔森计 ...

  3. HDU 6112 今夕何夕(模拟)

    Problem Description 今天是2017年8月6日,农历闰六月十五. 小度独自凭栏,望着一轮圆月,发出了"今夕何夕,见此良人"的寂寞感慨. 为了排遣郁结,它决定思考一 ...

  4. HDU 6112黑色星期五 蓝桥基拉姆森公式

    若某个月13号恰好是星期五,则这一天被称为黑色星期五.已知某年的一月一日是星期w,并且这一年是闰年, 求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字.(w=1..7)输入输入有多 ...

  5. 今夕何夕 HDU - 6112 ( 模拟 )

    今夕何夕 今天是2017年8月6日,农历闰六月十五. 小度独自凭栏,望着一轮圆月,发出了"今夕何夕,见此良人"的寂寞感慨. 为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年 ...

  6. hdu 6112 今夕何年(模拟)

    今天是2017年8月6日,农历闰六月十五. 小度独自凭栏,望着一轮圆月,发出了"今夕何夕,见此良人"的寂寞感慨. 为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个 ...

  7. linux命令大全vi,待整理 - Linux 下的VI命令大全

    mongo DB的一般操作 最近接触了一些mongoDB .将一些指令操作记录下来,便于查询和使用 登录 [root@logs ~]# mongo -u loguser -p log123456 -- ...

  8. c语言求某年某月1日是星期几,蔡勒(Zeller)公式:根据日期推算是星期几

    Zeller's Congruence: w=y + [y/4] + [c/4] - 2c + [26(m+1)/10] + d - 1 公式中的符号含义如下: w:星期: w对7取模得:0-星期日, ...

  9. 互联网的一些小知识点

    易学教程 天道酬勤 学无止境 <button type="button" class="navbar-toggle" data-toggle=" ...

最新文章

  1. 这个需求很简单,明天上线没问题吧?要不要怼回去?
  2. 呵呵,又在这里开了个博客,现在已经有好几个了
  3. django中的中间件执行顺序
  4. FreeCAD v0.19源码编译与VS2017+Qt5环境搭建
  5. Vim/Vi常用操作(第二版)
  6. IDEA自动勾选显示类型(specify type)
  7. android判断是否登陆过_如何判断车辆是否受到过碰撞?_搜狐汽车
  8. Facebook账户 “ 解封、防封、养号 ” 知识要点
  9. gedit 可以实现的更多功能插件
  10. 梦想旅行出席中国互联网大会 做旅游界的技术派
  11. Node.js验证码模块captchapng
  12. Mcafee(麦咖啡) 无法升级的解决办法 附:进程详解,设置指南
  13. eclipse 语言包在线更新地址
  14. mappedBy作用
  15. 自底向上的归并排序算法
  16. 开机后台占用严重?教你如何清理常见后台占用
  17. 《东周列国志》第十七回 宋国纳赂诛长万 楚王杯酒虏息妫
  18. android 编程app_2020年用于Android App开发的顶级编程语言
  19. 关于重装vscode打不开的三种解决方法,亲测有用
  20. 图片大小自适应QImage::scaled ()

热门文章

  1. 东莞网络推广浅析如何通过简化标题来提升核心关键词排名能力呢?
  2. 网络推广外包——还记得网络推广外包中的site收录吗?
  3. 网站推广——专业网站推广浅析企业网站排名有哪些影响因素?
  4. 浅析网站优化工作具体包括哪些内容?
  5. matlab光强值,光强分布MATLAB.doc
  6. 计算机技术在环境中的好处,浅谈计算机技术在德育现代化中的作用
  7. (传送门)android绘图canvas.clipRect()方法的作用
  8. angularjs 中的scope继承关系——(1)
  9. LNMP平台搭建之一:nginx编译安装
  10. C++编程基础一 01-我的第一个项目