题目链接:https://vjudge.net/contest/28079#problem/R

题目大意:给你分别给你两个日期(第二个日期大于等于第一个日期),闰年的2月29日称为闰日,让你求两个日期之间的闰日数量。

解题思路:①先求闰年数量,可以根据容斥原理,得到ans=(year2/4-year1/4)-(year2/100-year1/100)+(year2/400-year1/400)

     ②根据year1和year2的月份特判该年是否含闰日,注意一下上面的算式中ans包含了year2而没有包含year1所以判断时也有所不同,如果year2没有闰日ans-1,如果year1有闰日ans+1。

代码:

 #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char s[][]={"","January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November","December"};
char tmp[]; int jg_month(void){
for(int i=;i<=;i++){
if(!strcmp(tmp,s[i])){
return i;
}
}
} bool is_leap(int year){
if(year%==&&year%!=||year%==)
return true;
else
return false;
} int main(){
int T;
scanf("%d",&T);
int cas=;
while(T--){
int day1,year1,month1,day2,year2,month2;
scanf("%s%d,%d",tmp,&day1,&year1);
month1=jg_month();
scanf("%s%d,%d",tmp,&day2,&year2);
month2=jg_month();
//根据容斥原理
int ans=(year2/-year1/)-(year2/-year1/)+(year2/-year1/);
//根据year1,year2的月份进行特判
if(month1<=&&is_leap(year1))
ans++;
if(is_leap(year2)&&!(month2>=||month2==&&day2==))
ans--;
printf("Case %d: %d\n",++cas,ans);
}
return ;
}

LightOJ 1414 February 29(闰年统计+容斥原理)的更多相关文章

  1. February 29(模拟)

    D - D Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status P ...

  2. hihocoder1148 February 29(区间闰年计数)

    hihocoder1148https://hihocoder.com/problemset/problem/1148 因为题目没有给范围,我本来是这么写的. ; i <= ; i++){ ==& ...

  3. LightOJ Beginners Problems 部分题解

    相关代码请戳 https://coding.net/u/tiny656/p/LightOJ/git 1006 Hex-a-bonacci. 用数组模拟记录结果,注意取模 1008 Fibsieve's ...

  4. Hihocoder 2月29日

      时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期). 只有闰年有2月29日,满足以下一个条件的年份为闰年 ...

  5. hihoCoder 1148 2月29日

    时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期). 只有闰年有2月29日,满足以下一个条件的年份为闰年: ...

  6. hihoCoder2月29日(字符串模拟)

    时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期). 只有闰年有2月29日,满足以下一个条件的年份为闰年: ...

  7. Calendar 类 案例 和 闰年的计算

    Calendar 类 是一个抽象类 getInstance()直接返回子类对象 直接调用 主要方法:get set add 代码如下: package cn.lijun.demo; import ja ...

  8. 关于用Date类计算活了多少天和用Calendar类计算闰年的demo

    在javaSE阶段,Date类和Calendar类以后会经常用到 这两个类当中的一些常用方法 通过两个demo 进行学习和练习 第一个要求如下:让用户自己输入yyyy-MM-dd 格式的年月日 然后得 ...

  9. 关于用String Calender类 计算闰年的Demo

    package cn.zmh.zuoye; import java.util.Calendar; public class StringRun { public static void main(St ...

随机推荐

  1. 【BZOJ4540】【HNOI2016】序列(莫队)

    [BZOJ4540][HNOI2016]序列(莫队) 题面 BZOJ 洛谷 Description 给定长度为n的序列:a1,a2,-,an,记为a[1:n].类似地,a[l:r](1≤l≤r≤N)是 ...

  2. 最长上升子序列nlogn算法

    LIS问题是经典的动态规划问题,它的状态转移相信大家都很熟悉: f[i] = f[k] + 1  (k < i 且 A[k] < A[i]) 显然这样做复杂度是O(n^2) 有没有更快的算 ...

  3. Linux(一)——认识Linux

    一.Linux介绍 (安装的是Centos6.7) 1.Linux 系统是一套免费使用和自由传播的类 Unix 操作系统(主要用在服务器上),是一个基于 POSIX 和 UNIX 的多用户.多任务.支 ...

  4. BZOJ1002【FJOI2007】轮状病毒

    1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 6917  Solved: 3777[Submit][Statu ...

  5. [模板]2-SAT 问题&和平委员会

    tarjan的运用 this is a problem:link 2-SAT处理的是什么 首先,把「2」和「SAT」拆开.SAT 是 Satisfiability 的缩写,意为可满足性.即一串布尔变量 ...

  6. 【bzoj2318】game with probability

    Portal -->bzoj2318 Description Alice和Bob在玩一个游戏.有n个石子在这里,Alice和Bob轮流投掷硬币,如果正面朝上,则从n个石子中取出一个石子,否则不做 ...

  7. 用一次FastDFS

    FastDFS c编写的分布式文件系统,用于搭建文件服务器集群提供文件的上传.下载 特点 冗余备份 负载均衡 线性扩容 高性能.高可用 FastDFS架构 Tracker server 负载均衡和调度 ...

  8. HDU 4584 splay

    Shaolin Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Sub ...

  9. Codeforces 934.C A Twisty Movement

    C. A Twisty Movement time limit per test 1 second memory limit per test 256 megabytes input standard ...

  10. poj2373 Dividing the Path

    Dividing the Path Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5060   Accepted: 1782 ...