博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ZOJ - 3939 The Lucky Week(日期循环节+思维)
阅读量:5026 次
发布时间:2019-06-12

本文共 2096 字,大约阅读时间需要 6 分钟。

Edward, the headmaster of the Marjar University, is very busy every day and always forgets the date.

There was one day Edward suddenly found that if Monday was the 1st, 11th or 21st day of that month, he could remember the date clearly in that week. Therefore, he called such week "The Lucky Week".

But now Edward only remembers the date of his first Lucky Week because of the age-related memory loss, and he wants to know the date of the N-th Lucky Week. Can you help him?

Input

There are multiple test cases. The first line of input is an integer T indicating the number of test cases. For each test case:

The only line contains four integers Y, M, D and N (1 ≤ N ≤ 109) indicating the date (Y: year, M: month, D: day) of the Monday of the first Lucky Week and the Edward's query N.

The Monday of the first Lucky Week is between 1st Jan, 1753 and 31st Dec, 9999 (inclusive).

Output

For each case, print the date of the Monday of the N-th Lucky Week.

Sample Input

22016 4 11 22016 1 11 10

Sample Output

2016 7 112017 9 11

这个题的关键在于如何去求一个循环周期的时间

  1. //1:四百年一轮回,从闰年和平年的判定可以推出。

  2. //2:由上一条可以用程序判断出每四百年有2058个天为1,11,21的星期一,直接用。

代码:

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
const int maxn=1e5+5;typedef long long ll;using namespace std;int a[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};int b[13]= {0,31,29,31,30,31,30,31,31,30,31,30,31};bool run(int x) { if((x%4==0&&x%100!=0)||x%400==0) { return true; } else { return false; }}int main() { int T; cin>>T; int year ,month ,day,N; while(T--) { scanf("%d%d%d%d",&year,&month,&day,&N); year +=(N/2058)*400; N%=2058; int k=day; int cnt=0; int s=1; while(s<=N) { if(run(year)) { while(day<=b[month]) { if((cnt)%7==0&&(day==1||day==11||day==21)) { if(s==N) { cout<
<<" "<
<<" "<
<
12) { month=1; year++; } } else { while(day<=a[month]) { if((cnt)%7==0&&(day==1||day==11||day==21)) { if(s==N) { cout<
<<" "<
<<" "<
<
12) { month=1; year++; } } } } return 0;}

 

转载于:https://www.cnblogs.com/Staceyacm/p/10781749.html

你可能感兴趣的文章
ORA-12538: TNS: no such protocol adapter
查看>>
盒子模型
查看>>
局域网协议
查看>>
[HNOI2012]永无乡 线段树合并
查看>>
Spring整合hibernate:3、使用XML进行声明式的事务管理
查看>>
SqlServer之Convert 函数应用格式化日期(转)
查看>>
软件测试领域中的10个生存和发展技巧
查看>>
Camera前后摄像头同时预览
查看>>
HDU 1856
查看>>
课堂作业01--架构师的职责
查看>>
iOS计算富文本(NSMutableAttributedString)高度
查看>>
2017/09/15 ( 框架2)
查看>>
Centos下源码安装git
查看>>
gulp-rev-append md5版本号
查看>>
IO流之File类
查看>>
sql 基础语句
查看>>
CF717A Festival Organization(第一类斯特林数,斐波那契数列)
查看>>
oracle直接读写ms sqlserver数据库(二)配置透明网关
查看>>
控件发布:div2dropdownlist(div模拟dropdownlist控件)
查看>>
Oracle composite index column ordering
查看>>