第13届浙江省赛D题POJ3939
来源:互联网 发布:哪个软件有汉仪丫丫体 编辑:程序博客网 时间:2024/04/30 16:12
/*
题目来源:13届浙江省大学生程序设计竞赛D题(POJ3939http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3939)
作者:1412190214李建青
类型:模拟
题目描述:
Description
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
2
2016 4 11 2
2016 1 11 10
Sample Output
2016 7 11
2017 9 11
题目大意:定义一个Lucky Week为1号或者11号或者21号为周一的那周,求给定的Lucky Week后面(包含这周)第N个Lucky Week的日期
注意:这里每400年一次循环,一个循环有2058个Lucky Week
题目来源:13届浙江省大学生程序设计竞赛D题(POJ3939http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3939)
作者:1412190214李建青
类型:模拟
题目描述:
Description
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
2
2016 4 11 2
2016 1 11 10
Sample Output
2016 7 11
2017 9 11
题目大意:定义一个Lucky Week为1号或者11号或者21号为周一的那周,求给定的Lucky Week后面(包含这周)第N个Lucky Week的日期
注意:这里每400年一次循环,一个循环有2058个Lucky Week
*/
#include<iostream>#include<string>#include<stdio.h>using namespace std;int weekday(int y,int m,int d){ int tm=m>=3?(m-2):(m+10); int ty=m>=3?y:(y-1); return (ty+ty/4-ty/100+ty/400+(int)(2.6*tm-0.2)+d)%7;}int preoperate(){int year,mon,da,cont=0;for(year=1753;year<=1753+400;year++){for(mon=1;mon<=12;mon++){for(da=1;da<=21;da=da+10){if(weekday(year,mon,da)==1)cont++;}}}return cont;}void gotowhat(int y,int m,int d,int howmany){int cont=howmany;int year,mon,da;year=y;for(mon=m;mon<=12;mon++){for(da=(mon==m?d:1);da<=21;da=da+10){ int tag=weekday(year,mon,da);if(tag==1)cont--;if(cont==0){cout<<year<<" "<<mon<<" "<<da<<endl;return ;}}}for(year=y+1;year<=y+500;year++){for(mon=1;mon<=12;mon++){for(da=1;da<=21;da=da+10){ int tag=weekday(year,mon,da);if(tag==1)cont--;if(cont==0){cout<<year<<" "<<mon<<" "<<da<<endl;return ;}}}}}int main(){int t,y,m,d,number,st,ts;int oneturn=preoperate();cin>>t;while(t--){cin>>y>>m>>d>>number;st=number%2058;ts=number/2058;y+=400*ts; number=number-2058*ts;gotowhat(y,m,d,number);}return 0;}
1 0
- 第13届浙江省赛D题POJ3939
- ZOJ 3872 Beauty of Array 第12届浙江省省赛D题 [思维] 【数学】
- ZOJ-3944 People Counting From 第13届浙江省赛
- 第15届浙江省赛题 (dfs)
- 【第12届浙江省赛记录】
- ZOJ3603 2012浙江省赛D
- 2016 浙江省赛 The 13th Zhejiang Provincial Collegiate Programming Contest D题 循环节
- 13届浙江省省赛 A题 Apples and Ideas
- 13届浙江省省赛 I题 People Counting
- 13届浙江省省赛 C题 Defuse the Bomb
- ZOJ 3870 Team Formation(浙江省第12届ACM省赛第二题)
- ZOJ 3870 Team Formation 第12届浙江省省赛B题 [位运算+思维]【数学】
- 浙江省赛 D Let's Chat
- 第12届浙江省大学生程序设计竞赛
- 第十一届浙江省赛题目
- 浙江省省赛K题
- 浙江省省赛J题
- 13届浙江省省赛 L题 Very Happy Great BG
- HDOJ1874
- HDU1087-Super Jumping! Jumping! Jumping!
- Java 程序员们值得一看的好书推荐
- nutz的框架NutzDao自定义SQL
- 利用java反射调用类及父类的的私有方法
- 第13届浙江省赛D题POJ3939
- 小何讲Linux: Linux中文件及文件描述符概述
- Java 关键字作用备忘
- PMP认证仅是基础,易迪思项目管理学院八大实战课程为您服务
- npm使用介绍
- 计算机网络——运输层
- 搭建vs2010 boost开发环境
- Spring Security 4 退出 示例(带源码)
- 编写高质量的代码——从命名入手