LightOJ 1414 February 29(闰年统计+容斥原理)
题目链接: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(闰年统计+容斥原理)的更多相关文章
- February 29(模拟)
D - D Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Submit Status P ...
- hihocoder1148 February 29(区间闰年计数)
hihocoder1148https://hihocoder.com/problemset/problem/1148 因为题目没有给范围,我本来是这么写的. ; i <= ; i++){ ==& ...
- LightOJ Beginners Problems 部分题解
相关代码请戳 https://coding.net/u/tiny656/p/LightOJ/git 1006 Hex-a-bonacci. 用数组模拟记录结果,注意取模 1008 Fibsieve's ...
- Hihocoder 2月29日
时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期). 只有闰年有2月29日,满足以下一个条件的年份为闰年 ...
- hihoCoder 1148 2月29日
时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期). 只有闰年有2月29日,满足以下一个条件的年份为闰年: ...
- hihoCoder2月29日(字符串模拟)
时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期). 只有闰年有2月29日,满足以下一个条件的年份为闰年: ...
- Calendar 类 案例 和 闰年的计算
Calendar 类 是一个抽象类 getInstance()直接返回子类对象 直接调用 主要方法:get set add 代码如下: package cn.lijun.demo; import ja ...
- 关于用Date类计算活了多少天和用Calendar类计算闰年的demo
在javaSE阶段,Date类和Calendar类以后会经常用到 这两个类当中的一些常用方法 通过两个demo 进行学习和练习 第一个要求如下:让用户自己输入yyyy-MM-dd 格式的年月日 然后得 ...
- 关于用String Calender类 计算闰年的Demo
package cn.zmh.zuoye; import java.util.Calendar; public class StringRun { public static void main(St ...
随机推荐
- Thuwc2018 游记
上一次没有滚粗的比赛已经是9个月前了QAQ.但我现在回过头去看那篇“zjoi游记”,却发现自己并不能从中得到收获.希望这次写下的东西,可以帮助我更好地准备即将到来的省选(雾) day 0 火车上浪10 ...
- Native Wifi API
原文链接地址:https://www.cnblogs.com/jackcin/p/3285357.html 在windows平台下,可以使用native wifi api来控制无线网卡,包括获取无线网 ...
- 【bzoj3173】最长上升子序列
Portal --> bzoj3173 Solution 感觉自己需要智力康复qwq 首先题目给的这个序列肯定是一个\(1-n\)的排列,并且插入的顺序是从小到大 仔细思考一下会发现如果知道了最 ...
- 【BZOJ 1129】[POI2008]Per 二叉堆
这个东西读完题之后,就能知道我们要逐位计算贡献.推一下式子,会发现,这一位的贡献,是当前剩余的数字形成的序列的总数,乘上所剩数字中小于s上这一位的数的个数与所剩数字的总数的比.所以我们维护“当前剩余的 ...
- 框架----Django之文件上传
一.文件上传 1. 浏览器访问 http://127.0.0.1:8000/f1/ http://127.0.0.1:8000/f2/ 2. urls from django.conf.urls im ...
- Vue项目SEO优化的另一种姿态
背景:当前项目首页和登陆后的平台在一个项目里,路由采用hash模式,现在要做SEO优化,这时候同构SSR(Server Side Rendering)服务端渲染代价显然太大,影响范围比较广,同样更改当 ...
- 11.UiAutomator 相关JAVA知识
一.封装方法与模块化用例 1.方法: 在JAVA中,方法就好比日常生活中的一个动作,由动作组合成一系列完整的操作. 方法结构: 方法修饰符 方法返回值类型 方法名 { 方法体 } 比如: public ...
- centos7 samba匿名访问设置
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = centos security = user ...
- 引用类型 ( 对象定义 )——Date 类型
本文地址:http://www.cnblogs.com/veinyin/p/7607743.html 1 创建日期对象 var date = new Date(); 2 可以给日期对象传值 2.1 ...
- iOS 程序启动流程
iOS程序启动原理 技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong iOS应用程序运行 ...