当前位置: 首页 > 编程日记 > 正文

2015年编程之美(资格赛) ---2月29日

时间限制:2000ms
单点时限:1000ms
内存限制:256MB

描述

给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期)。

只有闰年有2月29日,满足以下一个条件的年份为闰年:

1. 年份能被4整除但不能被100整除

2. 年份能被400整除

输入

第一行为一个整数T,表示数据组数。

之后每组数据包含两行。每一行格式为"month day, year",表示一个日期。month为{"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November" , "December"}中的一个字符串。day与year为两个数字。

数据保证给定的日期合法且第一个日期早于或等于第二个日期。

输出

对于每组数据输出一行,形如"Case #X: Y"。X为数据组数,从1开始,Y为答案。

数据范围

1 ≤ T ≤ 550

小数据:

2000 ≤ year ≤ 3000

大数据:

2000 ≤ year ≤ 2×109

样例输入
4
January 12, 2012
March 19, 2012
August 12, 2899
August 12, 2901
August 12, 2000
August 12, 2005
February 29, 2004
February 29, 2012
样例输出
Case #1: 1
Case #2: 0
Case #3: 1
Case #4: 3


这道题,过小数据再简单不过了,但是要过大数据的话,还是有一点考验人的:
我们这里只需要注意这几点就可以做了:
如何求任意一个时间段的闰年数?
方法有很多,但是要说到高效率的话,用这个还是不错的, year/4 -year/100 +year/400 ;
但是由于还是要找到最近的闰年年份才能算简化这道题、代码如下
代码:
  1 //#define _CRT_SECURE_NO_WARNINGS
  2 //#define LOCAL
  3 
  4 #include<iostream>
  5 #include<string>
  6 #include<stdio.h>
  7 #include<stdlib.h>
  8 #include<string.h>
  9 #include<algorithm>
 10 
 11 #define __int int
 12 
 13 
 14 
 15 using namespace std;
 16 
 17 const char  month[13][15] = {
 18 
 19     "$$$","January", "February",
 20     "March", "April", "May",
 21     "June", "July", "August",
 22     "September", "October",
 23     "November", "December"
 24 };
 25 
 26 struct Mydate {
 27 
 28     __int year;
 29     char month[15];
 30     int mon;
 31     int day;
 32 
 33 };
 34 
 35 //判断是否是闰年
 36 bool isprimer(__int year) {
 37 
 38     if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
 39         return true;        //闰年
 40     return false;            //不是闰年
 41 }
 42 
 43 //输入接口
 44 void input(Mydate & ins) {
 45 
 46     ins.mon = 0;  //初始化
 47     scanf("%s %d,%d", &ins.month, &ins.day, &ins.year);
 48 }
 49 
 50 //将月份转化为数字部分
 51 void change(Mydate  &aa) {
 52 
 53     for (int i = 1; i < 13; i++) {
 54         if (strcmp(month[i], aa.month) == 0) {
 55             aa.mon = i;
 56             return;
 57         }
 58     }
 59 }
 60 
 61 //计算年份与年份间有多少个闰年
 62 __int work(const Mydate &star, const Mydate &_end) {
 63 
 64     //找到开始年份最近的一个闰年
 65     __int fir_pr = -1, las_pr = -1, res = 0;
 66     __int num_start, num_end;
 67     for (__int var = star.year ; var <= _end.year ; var++) {
 68         if (isprimer(var)) {
 69             fir_pr = var;
 70             break;
 71         }
 72     }
 73 
 74     for (__int var = _end.year; var >= star.year; var--) {
 75         if (isprimer(var)) {
 76             las_pr = var;
 77             break;
 78         }
 79     }
 80 
 81     if (fir_pr >=star.year && las_pr>=star.year ) {
 82 
 83         num_start = (fir_pr / 4 -  fir_pr / 100 + fir_pr / 400);
 84         num_end = (las_pr / 4 - las_pr / 100 +  las_pr / 400);
 85         
 86         res =(num_end - num_start )+1;    //年份间的闰年数
 87 
 88         if ( fir_pr == star.year ) {
 89             if (star.mon > 2)  res-- ;
 90         }
 91 
 92         if ( las_pr == _end.year ) {
 93             if (_end.mon < 2 ||(_end.mon == 2 && _end.day <29) ) res-- ;
 94         }
 95     }
 96     return res;
 97 }
 98 
 99 int main() {
100 
101     Mydate _start, _end;
102     int _case, cnt = 1;
103 #ifdef LOCAL
104     freopen("test.in", "r", stdin);
105 #endif
106     scanf("%d", &_case);
107     //输入部分
108     for (cnt = 1; cnt <= _case; cnt++) {
109 
110         input(_start), input(_end);
111         change(_start), change(_end);
112         __int res = work(_start, _end);
113         printf("Case #%d: %d\n", cnt, res);
114 
115     }
116 
117 
118     return 0;
119 }

截图:

 

转载于:https://www.cnblogs.com/gongxijun/p/4433920.html

相关文章:

2016多校赛2 A 数学推公式 E 极角排序,组合数(待补) L dp+bitset优化

2016 Multi-University Training Contest 2 A - Acperience 题意&#xff1a;给出w[]&#xff0c;求S((w[i]-aB[i])^2)的最小值(B[i]为1或-1)。 tags&#xff1a;一看到就搞了个三分上去&#xff0c;估计是精度问题&#xff0c;一直挖&#xff0c;23333。。 就是把这个公式推下…

php No 'Access-Control-Allow-Origin' header is present on the requested resource.'Ajax跨域访问解决方法

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 在PHP请求头加上 header("Access-Control-Allow-Origin: *");

二进制搜索算法_使用安全摄像机镜头解释二进制搜索算法

二进制搜索算法by Julia GeistJulia盖斯特(Julia Geist) 使用安全摄像机镜头解释二进制搜索算法 (Binary Search Algorithms explained using security camera footage) Binary search, also known as half-interval search or logarithmic search, is a search algorithm tha…

Codeforces 460E Roland and Rose(暴力)

题目链接&#xff1a;Codeforces 460E Roland and Rose 题目大意&#xff1a;在以原点为圆心&#xff0c;半径为R的局域内选择N个整数点&#xff0c;使得N个点中两两距离的平方和最大。 解题思路&#xff1a;R最大为30。那么事实上距离圆心距离最大的整数点只是12个最多&#x…

HTML POST提交参数给PHP并返回json,上传execl文件

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 需求&#xff1a;AJAX post带参数请求接口&#xff0c;PHP接收后存入数据库&#xff1b;然后返回json数据循环渲染到HTML <!DOCTYPE html> <html lang"zh">&l…

在Ubuntu 12.04 桌面上设置启动器(快捷方式)

在Ubuntu 12.04 桌面上设置启动器&#xff08;快捷方式&#xff09;过程讲解&#xff1a; 如下图所示&#xff0c;Eclipse 和 SQLDeveloper 都可以直接双击打开&#xff0c;这些应用程序的启动器都在 /usr/share/applications文件夹下面&#xff0c;进入后将其复制到桌面即可。…

rxswift中hud_如何在RxSwift中运行测试

rxswift中hudby Navdeep Singh通过Navdeep Singh 如何在RxSwift中运行测试 (How to run tests in RxSwift) RxTest and RxBlocking are part of the RxSwift repository. They are made available via separate pods, however, and so require separate imports.RxTest和RxBlo…

安装完DevExpress14.2.5,如何破解它呢?

DevExpress是一个界面控件套件&#xff0c;提供了一系列的界面控件套件的DotNet界面控件。DevExpress开发的控件有很强的实力&#xff0c;不仅功能丰富&#xff0c;应用简单&#xff0c;而且界面华丽&#xff0c;更可方便订制&#xff0c;方便开发人员开发。 下面介绍DevExpres…

Extjs Ext.TreePanel

TreePanel 简单实例。 <link rel"stylesheet" href"Js/ext-4.2/resources/css/ext-all-neptune.css"/><script src"Js/jQuery/jquery-1.8.2.min.js" type"text/javascript"></script><script src"Js/ext-…

php模糊搜索功能

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 前端 前端post请求并发送str参数>搜索的内容&#xff1b; PHP <?phpheader("Content-Type:text/html;charsetutf8"); header("Access-Control-Allow-Origin…

react 快速上手开发_React中测试驱动开发的快速指南

react 快速上手开发by Michał Baranowski通过MichałBaranowski React中测试驱动开发的快速指南 (A quick guide to test-driven development in React) Following the principles of Test-Driven Development (TDD) when writing a front-end React app might seem more dif…

iOS 相册和网络图片的存取

iOS 相册和网络图片的存取 保存 UIImage 到相册 UIKit UIKit 中一个古老的方法&#xff0c;Objective-C 的形式 void UIImageWriteToSavedPhotosAlbum(UIImage *image, id completionTarget, SEL completionSelector, void *contextInfo); 保存完成后&#xff0c;会调用 comple…

微信小程序实时聊天之WebSocket

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 1.所有监听事件先在onload监听。 // pages/index/to_news/to_news.js var app getApp(); var socketOpen false; var SocketTask false; var url ws://192.168.0.120:7011; Page…

webform repeater

repeater:由模板构成&#xff0c;解析后模板就不存在了 需要指定数据源进行数据绑定 List<Fruit> list new FruitDA().Select(); // 数据查询 &#xff08;随便查寻的&#xff09; Repeater1.DataSource list; // 赋值 Repeater1…

远程协助软件开发_这是我从事远程软件开发人员工作的主要技巧

远程协助软件开发by Colin Morgan通过科林摩根(Colin Morgan) 这是我从事远程软件开发人员工作的主要技巧 (Here are the top tips I’ve used to land a remote software developer job) Applying for a remote software developer job means you are voluntarily choosing t…

简谈-Python一些常用的爬虫技巧

第一种&#xff1a;基本的网页抓取 get方法 import urllib2url "链接response urllib2.urlopen(url)print response.read() post方法 import urllibimport urllib2url "链接form {name:abc,password:1234}form_data urllib.urlencode(form)request urllib2.Req…

微信小程序画布圆形进度条demo

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; wxml <!--pages/test/test.wxml--> <canvas style"width: 300px; height: 200px;" canvas-id"canvasid"></canvas>js // pages/test/test.js …

smarty 模板引擎

http://blog.csdn.net/zuiaituantuan/article/details/5951242 http://wenku.baidu.com/link?url-UHlSnTXOOAjFG1KjX6T9sEG6V4hNAMfRDpMuRRnc_FKbFAxiE5Ntk4lzxSm-7Z531uWdfvgYx81sdC61SgTZm7q8FdUt3gSs7ZlC0JR1SW转载于:https://www.cnblogs.com/hxjbc/p/4441879.html

flask url构建_如何为生产构建构建Flask-RESTPlus Web服务

flask url构建by Greg Obinna由格雷格奥比纳(Greg Obinna) 如何为生产构建构建Flask-RESTPlus Web服务 (How to structure a Flask-RESTPlus web service for production builds) In this guide I’ll show you a step by step approach for structuring a Flask RESTPlus web…

【2017-4-26】Winform 公共控件 菜单和工具栏

作废 等待重写 名称 功能取值赋值备注Button按钮多用来触发点击事件 CheckBox多选按钮 CheckedListBox多选按钮组 ComboBox下拉列表 DateTimePicker指定的格式选择时间日期 Lable说明性文字控件 LinkLable超链接类型文件控件 ListBox用户选择项 ListVie…

微信小程序限制当前位置和目的地的距离

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 1。获取当前位置经纬度 onLoad: function (options) {var that this;campaign_id campaign_idwx.getLocation({type: wgs84,success: function (res) {console.log(res)lat1 res.l…

命令行的全文搜索工具--ack

想必大家在命令行环境下工作时候&#xff0c;一定有想要查找当前目录下的源代码文件中的某些字符的需求&#xff0c;这时候如果使用传统方案&#xff0c;你可能需要输入一长串的命令&#xff0c;比如这样&#xff1a; 1. grep -R string dir/ 或者 grep -r -e string direct…

ecmascript_TC39及其对ECMAScript的贡献

ecmascriptby Parth Shandilya通过Parth Shandilya TC39及其对ECMAScript的贡献 (TC39 and its contributions to ECMAScript) Many people get confused about what is JavaScript and what is ECMAScript. Sometimes it’s hard to tell how they are connected with each o…

Winio驱动在64位windows下无法使用的解决方法

C#在使用WinIo的驱动开发类似按键精灵一类工具的时候&#xff0c;需要对相关的驱动进行注册才能正常启动&#xff0c;找了下资料&#xff0c;资料来自&#xff1a; http://jingyan.baidu.com/article/642c9d34e55bd9644b46f74e.html 我在这里进行转载&#xff1a; Winio驱动在6…

js获取前后几天或者前后几个月的日期

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 &#xff1b; 正文&#xff1a; demo: 1.获取前后几天的日期 // pages/test/test.jsPage({onLoad: function (options) {var day -7;console.log(GetDay(day))}, }) function GetDay(day) {var tim…

nodejs安装、配置及开发工具

学了node一段时间&#xff0c;但是node的安装还是有一点迷糊。今天新换电脑&#xff0c;所以&#xff0c;需要从头开始&#xff0c;发现node的安装还是不顺畅&#xff0c;这篇随笔是之前学的时候写&#xff0c;但是今天再打开看的时候&#xff0c;发现其他好像没有什么内容&…

拨测工具_您可以拨多少钱? 快速简单地介绍有用的工具。

拨测工具by Miguel Bustamante通过Miguel Bustamante 您可以卷曲多少&#xff1f; 快速简单地介绍有用的工具。 (How much can you cURL? A quick and easy intro to a useful tool.) On a good day I can flex a 20 lb weight…twice. Probably. But that’s not the type o…

leetcode第一刷_Recover Binary Search Tree

这是一道好题&#xff0c;思路尽管有&#xff0c;可是提交之后总是有数据过不了&#xff0c;又依照数据改改改。最后代码都没法看了。收到的教训是假设必须为自己的代码加上非常多非常多特殊的限定。来过一些特殊的数据的话。说明代码本身有非常大的漏洞。 这道题&#xff0c;我…

Java中的文件路径

通常情况下&#xff0c;在Java项目中&#xff0c;我们使用的路径都是在拿到类加载路径后&#xff0c;根据相对位置&#xff0c;使用 FilePathTest.class.getResourceAsStream(relativePath)&#xff1b;拿到文件。今天小生不使用classPath&#xff0c;而是直接去使用相对路径来…

js上传文件,上传表单demo 包含后端php

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><title>Title</title><script src"https://ajax.as…