统计起始日期之间有多少个2月29日

编程之美2015资格赛--题目1 : 2月29日 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期)。 只有闰年有2月29日,满足以下一个条件的年份为闰年: 1. 年份能被4整除但不能被100整除 2. 年份能被400整除 输入 第一行为一个整数T,表示数据组数。 之后每组数据包含两行。每一行格式为"month day, year",表示一个日期。month为{"January", "February", 阅读详情

题目:统计起始日期之间有多少个2月29。


#include <iostream>
#include <string>

using namespace std;

class Date
{
private:
    int month;
    int day;
    int year;

    static int getMonthFromString(const string &s)
    {
        static const string months_str[12] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
        for (int i = 0; i < 12; ++i)
            if (!months_str[i].compare(s))
                return i + 1;

        return 0;
    }

    bool isNotAfter0229() const
    {
        if (month < 2) return true;
        if (month == 2 && day <= 29) return true;
        return false;
    }

    bool isNotBefore0229() const
    {
        if (month > 2) return true;
        if (month == 2 && day == 29) return true;
        return false;
    }

    bool isLeapYear() const
    {
        if (!(year % 400)) return true;
        if (!(year % 4) && (year % 100)) return true;
        return false;
    }

    bool isLeapYear(int y) const
    {
        if (!(y % 400)) return true;
        if (!(y % 4) && (y % 100)) return true;
        return false;
    }

public:
    Date(string m, int d, int y) : month(getMonthFromString(m)), day(d), year(y) {}

    int count0229tillDate(const Date &end_date)
    {
        int count = 0;
        if (end_date.year == year)
        {
            if (isLeapYear() && isNotAfter0229() && end_date.isNotBefore0229())
                ++count;
        }
        else
        {
            if (isLeapYear() && isNotAfter0229()) ++count;
            for (int i = year + 1; i < end_date.year; ++i)
                if (isLeapYear(i))
                    ++count;
            if (end_date.isLeapYear() && end_date.isNotBefore0229()) ++count;
        }

        return count;
    }
};

int main()
{
    int T = 0;
    cin >> T;
    for (int t = 1; t <= T; ++t)
    {
        string  start_month, end_month;
        char    comma;
        int     start_day, end_day;
        int     start_year, end_year;

        cin >> start_month >> start_day >> comma >> start_year;
        cin >> end_month >> end_day >> comma >> end_year;

        Date start_date(start_month, start_day, start_year);
        Date end_date(end_month, end_day, end_year);
        cout << "Case #" << t << ": " << start_date.count0229tillDate(end_date) << endl;
    }

    return 0;
}
路径搜索算法——RRT*算法 RRT算法是RRT算法的优化版本,通过引入路径优化机制实现渐进最优性。该算法在高维空间和复杂环境中表现优异,主要步骤包括随机采样、树扩展和邻近节点重新连接。相比RRT,RRT能够不断优化路径质量,但计算复杂度更高。Python实现展示了其核心逻辑:随机采样扩展树节点,检查碰撞,选择最优父节点,并通过重新连接优化路径。算法适用于机器人导航等场景,但需平衡计算效率与路径质量。 阅读详情

相关推荐

AI市场风起云涌,ai浏览器是最佳的落地项目,现在ai市场的ai浏览器竞争加剧,得ai浏览器者得天下!

从场景覆盖度来看,AI 浏览器已突破 “网页浏览” 的传统边界,成为连接个人生活、工作、消费的 “超级入口”,这是其他 AI 应用难以比拟的落地优势。在个人生活场景,AI 浏览器可基于用户行为数据主动提供服务 —— 当用户浏览马拉松赛事信息时,浏览器能自动生成 “训练计划 + 装备推荐 + 能量补给方案”,并关联预订链接;在工作场景,Opera Neon 浏览器已实现 “网页内容提取 - 代码生成 - 报告撰写” 的全流程辅助,开发者可直接在浏览器内完成网站开发初稿;

zhang9880000的博客 1086

hihocoder #1148 : 2月29日(容斥原理,有坑)

题目链接:#1148 : 2月29日 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期)。 只有闰年有2月29日,满足以下一个条件的年份为闰年: 年份能被4整除但不能被100整除 年份能被400整除 输入 第一行为一个整数T,表示数据组数。 之后每组数据包含两行。每一行格式为”mon...

nhl19961226的博客 606

Anchor graph 对齐文献解读

Align then Fusion: Generalized Large-scale Multi-view Clustering with Anchor Matching Correspondences文献解读

atease0001的博客 1165

2016年02月29日

自学 c++

jenny890105的专栏 556

人脸情绪识别(使用深度学习和OpenCV)

基于opencv与深度学习的人脸情绪识别系统

mx0390304的博客 8251

从ST转国产ARM必看:GD32/APM32等5款芯片的SWD下载全攻略(含CH32特殊处理)

本文为从STM32转向国产ARM芯片的开发者提供了详细的SWD下载调试指南。针对GD32F103C8T6、APM32F103C8T6等五款热门国产芯片,详细说明了如何利用已有的ST-Link工具和Keil MDK环境进行程序烧录,并特别介绍了CH32F103芯片所需的独立器件库安装等特殊处理方法,帮助开发者实现平滑迁移,提升开发效率。

weixin_29195615的博客 278

蓝桥杯C/C++B组省赛日期类问题汇总

蓝桥2017第八届省赛第七题 日期问题 思路:暴力枚举从1960年1月1日到2059年12月31日的所有合法日期,然后拆分出年月日,如果符合题目中的三种情况之一(年/月/日 月/日/年 日/月/年)的输出即可 #include<bits/stdc++.h> using namespace std; int a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int check(int year, int month, in

qq_51817638的博客 1875

八、ILI2511 初版调试

8.1 TP成品过程 TP厂在制造TP过程中会经过FPC、FOG和Model三个阶段。 FPC: 将IC做在FPC上面; FOG: 将FPC与sensor 绑定; Model:FOG阶段后,贴上CG(cover glass)。 经过上面三个阶段后,将会拿到没有烧录固件的TP模组。这个时候触摸TP,并不能上报触摸数据,需要对TP模组烧录固件(执行程序)后才会有TP有触摸数据。 8.2 源码编译固件与工具生成固件 我们可以通过以下两种方式获得固件 1)由奕力原厂直接通过源码,进行编...

qq_34343637的博客 3689

mysql 计算两个日期间有多少个2月29

功能: 统计两个日期间有多少个2月29 实现方法: 2月29天数 = 两个日期天数差 - (两个日期在一个自然年内天数差 + 365 * 两个日期年数差) DELIMITER $$DROP FUNCTION IF EXISTS `F_GET_LEAYYEAR_DAYS`$$CREATE FUNCTION `F_GET_LEAYYEAR_DAYS`(start_date BIG

chinacmt的博客 1360

深度学习技巧应用26-CNN中多种注意力机制的嵌入方法,终于搞懂注意力机制了

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用26-CNN中多种注意力机制的嵌入方法,终于搞懂注意力机制了。CNN是一种能够有效处理图像和其他二维数据的深度学习模型。在传统的CNN中,每个卷积核都会对输入的所有位置进行相同的操作,这可能导致网络无法针对特定区域或特征进行更加关注和重点处理。 注意力机制被引入卷积神经网络中,旨在使网络能够自动地学习和聚焦于输入中的重要区域或特征。通过引入注意力机制,可以增强网络对不同区域或特征的关注度,提取更有意义和相关的特征,从而提高模型的性能和表达能力。

微学AI的博客 3313

Claude Code 处理长任务 + Cursor 专注交互:双栈协作的 3 种分工场景与响应提速 35% 实测

揭示 Claude Code 与 Cursor 在 AI 编程中的本质分工:Claude Code 作为离线式架构师处理跨文件、带约束的长链路重构(如单体拆微服务),Cursor 作为现场交互工程师专注秒级局部编辑;提出按任务切片动态切换的三种工程化协作场景,并给出结构化上下文构建、约束型 Prom

weixin_28728443的博客 123

统计闰年2月29日天数

1.问题描述 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期)。 只有闰年有2月29日,满足以下一个条件的年份为闰年: 1. 年份能被4整除但不能被100整除 2. 年份能被400整除 输入 第一行为一个整数T,表示数据组数。之后每组数据包含两行。每一行格式为"month day, year",表示一个日期。month为{"January", "Februar...

weixin_30387799的博客 399

大模型之Spring AI实战系列(二十六):Spring Boot + DeepSeek 实战指南:构建AI聊天应用

在人工智能技术飞速发展的今天,大型语言模型已经成为了推动技术创新的重要力量。DeepSeek作为国内领先的大型语言模型提供商,其推出的DeepSeek系列模型在多个领域都展现出了卓越的性能。本文将详细介绍如何使用Spring Boot框架集成DeepSeek API,构建一个简单的AI聊天应用。我们将实现两个核心功能:普通文本生成和流式文本生成。

寻道AI,探索AI无限可能! 2264

`2015 编程之美 资格赛 第一题 hihocoder 区间闰年 2月29 数量 模拟题

`2015 编程之美 资格赛 第一题 hihocoder 区间闰年 2月29 数量 模拟题时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期)。只有闰年有2月29日,满足以下一个条件的年份为闰年: 年份能被4整除但不能被100整除 年份能被400整除 输入 第一行为一个整数T,表示数据组数。之后每组数

daguge1的专栏 675

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

二级考试(青少年):计算两个日期之间的天数

计算两个日期之间的天数 给定两个日期,计算相差的天数。比如2010-1-1和2010-1-3相差2天。 时间限制:1000 内存限制:65536 输入 共两行: 第一行包含三个整数startYear,startMonth,startDay,分别是起始年、月、日。 第二行包含三个整数endYear,endMonth,endDay,分别是结束年、月、日。 相邻两个整数之间用单个空格隔开。 年份范围在1~3000。保证日期正确且结束日期不早于起始日期。 输出 输出一个整数,即是两个日期相差的天数。 样例输入.

脚印 736

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

python输出一年有多少天多少时分秒_python:计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上...

# -*- coding: UTF-8 -*-""" Created on 2017/4/2 @author: cat """import logging""" 根据下列信息计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上? a) 1900.1.1是星期一 b) 1月,3月,5月,7月,8月,10月和12月是31天 c) 4月,6月,9月和11月是30天 d) ...

weixin_39824033的博客 718

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

蓝桥杯练习笔记(二十-日期问题)

日期题常见于填空题,关键点涉及闰年的判断和星期几的判断。

m0_73902771的博客 1213

回文日期

链接:https://ac.nowcoder.com/acm/problem/16438 来源:牛客网 题目描述 在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月份,最后2位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。 牛牛认为,一个日期是回文的,当且仅当表示这...

huantingyizhan的博客 3422

用贝叶斯统计反推病毒暴露时间:从确诊日估算感染日

病毒潜伏期并非固定值,而是一个服从正态分布的概率过程;其核心原理是利用先验知识(如毒株特异性潜伏期均值与标准差)与个体化证据(如明确暴露史、症状起始日、家庭传播链)进行贝叶斯更新,生成可解释、可审计的后验概率分布。该方法兼顾流行病学规律与临床现实,避免简单相减导致的系统性偏差,技术价值在于提供带置信区间的感染时间估计,而非单一点预测。典型应用场景包括密接者时间锚定、病程阶段评估及家庭传播溯源。本文聚焦SARS-CoV-2感染时间反推,深度融合贝叶斯统计与正态分布建模。

weixin_34072458的博客 504

P2010回文日期

题目描述 在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用88位数字表示一个日期,其中,前44位代表年份,接下来22位代表月 份,最后22位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表 示方法不会相同。 牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现 在,牛牛想知道:在他指定的两个日期之间包含这两个日期本身),有多少个真实存 在的日期是回文的。 一个88位数字是回文的,当且仅当对于所有的i ( 1 \le i \le 8)i(

weixin_51552058的博客 277

回文日期(逆向思维)

一年总共12个月,每月的天数都不同,二月的处理时本题一个难点,闰年的二月无非就是多了一个29日,而0229对应的回文数为92200229,9220正好为闰年,所以直接把二月看做29天就好了。牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月 份,最后2位代表日期。一个8位数字是回文的,当且仅当对于所有的i ( 1

纵有疾风起 人生不言弃 1882

回文日期 (思维)

描述 在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月 份,最后2位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表 示方法不会相同。 牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现 在,牛牛想知道:在他指定的两个日期之间包含这两个日期本身),有多少个真实存 在的日期是回文的。 一个8位数字是回文的,当且仅当对于所有的i(1≤i≤8)从左向右数的第i个数字和第9−i个数字

qq_51738428的博客 313

2021 年10月30日星期六

牛客网算法竞赛入门班第一节课习题 NOIP2016 回文日期,两种写法,正常枚举,暴力打表 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月份,最后2位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。 牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现 在,牛牛想知道:在他指定的两个.

m0_52163052的博客 187

暑假每日算法学习打卡(四)----回文日期 (牛客)

暑假每日算法学习打卡(四)----回文日期 (牛客)

weixin_66170039的博客 353

洛谷:P2010 回文日期

题目描述 在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用8位数字表示一个日期,其中,前44位代表年份,接下来2位代表月 份,最后2位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表 示方法不会相同。 牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现 在,牛牛想知道:在他指定的两个日期之间包含这两个日期本身),有多少个真实存 在的日期是回文的。 一个8位数字是回文的,当且仅当对于所有的i(1≤i≤8)从左向右数的第i个 数字和第9-i个数字

K_CRACKING的博客 1444

25:计算两个日期之间的天数【2019信科夏令营考前练习A】

25:计算两个日期之间的天数【2019信科夏令营考前练习A】

JingleBell_Moon的博客 250
上一篇: 面试题:旋转数组
下一篇: 判定两个集合是否相同
chfe910
博客等级 码龄14年 56粉丝 170原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值