当前位置: 首页 > news >正文

CCF 201503-3 节日

试题编号:201503-3
试题名称:节日
时间限制:1.0s
内存限制:256.0MB
问题描述:
问题描述
  有一类节日的日期并不是固定的,而是以“ a月的第 b个星期 c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日。
  现在,给你 abcy 1, y 2(1850 ≤ y 1, y 2 ≤ 2050),希望你输出从公元 y 1年到公元 y 2年间的每年的 a月的第 b个星期 c的日期。
  提示:关于闰年的规则:年份是400的整数倍时是闰年,否则年份是4的倍数并且不是100的倍数时是闰年,其他年份都不是闰年。例如1900年就不是闰年,而2000年是闰年。
  为了方便你推算,已知1850年1月1日是星期二。
输入格式
  输入包含恰好一行,有五个整数 a, b, c, y 1, y 2。其中 c=1, 2, ……, 6, 7分别表示星期一、二、……、六、日。
输出格式
  对于 y 1y 2之间的每一个年份,包括 y 1y 2,按照年份从小到大的顺序输出一行。
  如果该年的 a月第 b个星期 c确实存在,则以"yyyy/mm/dd"的格式输出,即输出四位数的年份,两位数的月份,两位数的日期,中间用斜杠“/”分隔,位数不足时前补零。
  如果该年的 a月第 b个星期 c并不存在,则输出"none"(不包含双引号)。
样例输入
5 2 7 2014 2015
样例输出
2014/05/11
2015/05/10
评测用例规模与约定
  所有评测用例都满足:1 ≤ a ≤ 12,1 ≤ b ≤ 5,1 ≤ c ≤ 7,1850 ≤ y 1, y 2 ≤ 2050。

关键词:十年之痒,蔡勒公式,闰年判断,整数补齐宽度0(一次有效)

 1 #include<iostream>
 2 using namespace std;
 3 int gdp[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
 4 int gdr[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
 5 int yCaile(int year,int month,int day){
 6     int century;
 7     int buf;
 8     if (month == 1 || month == 2){
 9         month = month + 12;
10         year--;
11     }
12     century = year/100;
13     year = year%100;
14     buf = year + year/4 + century/4 - 2*century + 26*(month + 1)/10 + day - 1;
15     while(buf < 0){
16         buf += 7;
17     }
18     return buf%7;
19 }
20 bool yLeap(int year){
21     if(year%400 == 0){
22         return true;
23     }
24     else if(year%100 == 0){
25         return false;
26     }
27     else if(year%4 == 0){
28         return true;
29     }
30     else{
31         return false;
32     }
33 }
34 int main(){
35     //freopen("in2.txt","r",stdin);
36     int g1,g2,g3;
37     int gy1,gy2;
38     cin >> g1 >> g2 >> g3 >> gy1 >> gy2;
39     int gybuf = min(gy1,gy2);
40     gy2 = max(gy1,gy2);
41     gy1 = gybuf;
42     for(int y = gy1;y<=gy2;y++){
43         int num = 0;
44         int j = 0;
45         if(yLeap(y)){
46             for(j = 0;j<gdr[g1-1];j++){
47                 if(yCaile(y,g1,j+1) == g3%7){
48                     num++;
49                     if(num == g2){
50                         break;
51                     }
52                 }
53             }
54         }
55         else{
56             for(j = 0;j<gdp[g1-1];j++){
57                 if(yCaile(y,g1,j+1) == g3%7){
58                     num++;
59                     if(num == g2){
60                         break;
61                     }
62                 }
63             }
64         }
65         if(num == g2){
66             cout << y << '/';
67             cout.fill('0');
68             cout.width(2); 
69             cout << g1 << '/';
70             cout.fill('0');
71             cout.width(2); 
72             cout<< j+1 << endl;
73         }
74         else{
75             cout << "none" << endl;
76         }
77     }
78     return 0;
79 }

 

转载于:https://www.cnblogs.com/ywsswy/p/7740162.html

相关文章:

  • LVS专题-(1)LVS基本介绍
  • 杭电2054
  • 赵丽颖人生第一次演讲——我小小的英雄主义,用行动证明坚持的意义
  • zabbix snmp 监控Esxi6.0 无法开启snmp服务
  • Python[7] :Python制作json格式和shell格式的API
  • 微服务下的网关与容错
  • Oracle trunc() 函数处理数字、日期的整理
  • ant 学习(4)--常用task
  • 33.Apollo引入第三方Jar包编译
  • IT团队需要的10个关键安全能力
  • 如何禁用MacOS High Sierra中的「重要地点」位置跟踪
  • 有些话只说与懂得的人听
  • 进化者机器人完成 8 千万元 A+ 轮融资,还推出了教师助手小胖
  • 解决高版本Chrome浏览器扩展程序强制停用问题
  • 修改Active Directory域控制器IP地址
  • 【技术性】Search知识
  • 【知识碎片】第三方登录弹窗效果
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Angular 响应式表单之下拉框
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • Codepen 每日精选(2018-3-25)
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JavaScript函数式编程(一)
  • Promise面试题,控制异步流程
  • Python - 闭包Closure
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Yeoman_Bower_Grunt
  • 机器学习中为什么要做归一化normalization
  • 前端_面试
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • k8s使用glusterfs实现动态持久化存储
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • # 透过事物看本质的能力怎么培养?
  • #13 yum、编译安装与sed命令的使用
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • $.ajax中的eval及dataType
  • $refs 、$nextTic、动态组件、name的使用
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (ZT)薛涌:谈贫说富
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (二)Linux——Linux常用指令
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (接口自动化)Python3操作MySQL数据库
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十)T检验-第一部分
  • (转)【Hibernate总结系列】使用举例
  • ***利用Ms05002溢出找“肉鸡
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • ..回顾17,展望18
  • .java 9 找不到符号_java找不到符号
  • .Net(C#)常用转换byte转uint32、byte转float等