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

【蓝桥杯】每日练习 Day13

前言

今天做了不少题,但是感觉都太水了,深思熟虑之下主播决定拿出两道相对不那么水的题来说一下(其实还是很水)。

两道问题,一道是日期问题(模拟),一道是区间合并问题。


日期差值


分析

这样的问题其实就是模拟,但是我们可以发现在模拟的过程中需要处理年份,月份,天数,进位等情况,如果都去用if - else嵌套去写的话那未免太不优雅了。

所以主播带了一种可以优雅的处理这种问题的方法。

这种方法是开始先将日期转化成从0001-01-01到此日期经过了多少天,随后两个数字相减就可以了,怎么样,是不是很简单。

那么我们如何来计算有多少天呢,先来试着按照每一天来枚举,可以发现总共枚举的话需要枚举10000 * 355 * 100次,算下来是三点五亿,常数小的话是有可能过的,但是显然我们不能去赌能不能过,我们来换一种方式枚举。

怎样枚举呢?我们先计算出这一年的前面所有年有多少天(这个好算,枚举每一年,平年就+355, 闰年+356),随后我们再枚举这个月前面所有的月份有多少天,用一个数组来存储每个月有多少天,如果是2月的话需要判断一下年份是否是闰年。

超级简单,没错,主包就是这么水……


代码

#include<iostream>
using namespace std;
int mouths[] ={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //每月的天数
int y1, y2, m1, m2, d1, d2;bool is_leap(int year)
{return year % 4 == 0 && year % 100 || year % 400 == 0;
}int mouthDay(int year, int mouth)
{if(mouth == 2) return mouths[2] + is_leap(year);return mouths[mouth];
}int yearDay(int year)
{return 365 + is_leap(year);
} int dayNums(int year, int mouth, int day)
{int l = 0;for(int i = 1; i < year; i++)l += yearDay(i);for(int i = 1; i < mouth; i++)l += mouthDay(year, i);l += day;return l;
}int main()
{while(~scanf("%04d%02d%02d\n%04d%02d%02d", &y1, &m1, &d1, &y2, &m2, &d2))printf("%d\n", abs(dayNums(y2, m2, d2) - dayNums(y1, m1, d1)) + 1);return 0;
}

挤牛奶


分析

这个就更不用多说了,区间合并,主包记得自己最开始学算法的时候第一个真正理解的就是区间合并

具体过程就是先排序,随后每次都用区间去和前一个区间比较能否合并,区间能合并的条件一般是

a[i].r >= a[i].l

特殊情况可能需要左端加一再去比较(就比如我们之前的拿到水管的题目)。

顺便提一嘴这道题用差分前缀和也是可以写的。


代码

// 区间合并
#include<iostream>
#include<vector>
#include<algorithm>
#define s second
#define f first
using namespace std;
typedef pair<int, int> PII;
const int N = 5010;
int n;
PII nums[N];
int onTime, unTime;int main()
{scanf("%d", &n);for(int i = 0; i < n; i++)scanf("%d%d", &nums[i].f, &nums[i].s);sort(nums, nums + n);vector<PII> vtr;vtr.push_back(nums[0]);for(int i = 1; i < n; i++)if(vtr.back().s  >= nums[i].f) vtr[vtr.size() - 1].s = max(vtr[vtr.size() - 1].s, nums[i].s);else vtr.push_back(nums[i]);for(int i = 0; i < vtr.size(); i++)onTime = max(onTime, vtr[i].s - vtr[i].f); //int t = vtr[0].s;for(int i = 1; i < vtr.size(); i++)unTime = max(unTime, vtr[i].f - t), t = vtr[i].s;printf("%d %d", onTime, unTime);return 0;
}

总结

 主包要去休息了,实在是困得不行了,打了一天瞌睡QAQ。

相关文章:

【蓝桥杯】每日练习 Day13

前言 今天做了不少题&#xff0c;但是感觉都太水了&#xff0c;深思熟虑之下主播决定拿出两道相对不那么水的题来说一下&#xff08;其实还是很水&#xff09;。 两道问题&#xff0c;一道是日期问题&#xff08;模拟&#xff09;&#xff0c;一道是区间合并问题。 日期差值 …...

【Docker系列七】Docker Compose 命令详解

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

【AI学习】Transformer 模型

1,概念 是一种基于自注意力机制(Self-Attention Mechanism)的深度学习架构,在自然语言处理、计算机视觉等多个领域都有着极为重要的应用。 2,基本结构 1)编码器(Encoder) 通常由多个相同的编码器层堆叠而成。 每个编码器层包含了多头自注意力机制、前馈神经网络以及…...

大数据学习栈记——HBase操作(shell java)

本文介绍HBase在shell终端的常见操作以及如何利用java api操作HBase&#xff0c;操作系统&#xff1a;Ubuntu24.04 参考&#xff1a; https://blog.51cto.com/u_16099228/8016429 https://blog.csdn.net/m0_37739193/article/details/73618899 https://cloud.tencent.com/d…...

React多层级对象改变值--immer

reduxjs/toolkit底层就是immer&#xff0c;&#xff0c;&#xff0c;所以在使用redux的时候&#xff0c;直接赋值&#xff0c;就会响应式的数据 如果不使用reduxjs/toolkit,可以自己使用immer来实现 安装immer npm install immer引入produce函数&#xff0c;&#xff0c;prod…...

服务器硬盘爆满100%问题解决

问题 在工作中遇到一个服务器&#xff0c;服务器硬盘100%&#xff0c;查找哪个目录文件中占用大量空间。发现加起来才150G&#xff0c;硬盘空间大概有500G。 处理问题&#xff0c;排查是否有某个进程正在删除文件&#xff0c;进程卡住了&#xff0c;所以过滤一下有哪些进程&am…...

智能制造:物联网和自动化之间的关系

工业自动化 工业自动化是机器设备或生产过程在不需要人工直接干预的情况下按预期的目标实现测量、操纵等信息处理和过程控制的统称。 在传统的工业生产过程中&#xff0c;很多环节需要人工操作&#xff0c;比如设备调试、生产监控、质量检测等。然而&#xff0c;随着工业自动化…...

Axure项目实战:智慧城市APP(三)教育查询(显示与隐藏交互)

亲爱的小伙伴&#xff0c;在您浏览之前&#xff0c;烦请关注一下&#xff0c;在此深表感谢&#xff01; 课程主题&#xff1a;教育查询 主要内容&#xff1a;教育公告信息&#xff0c;小升初、初升高、高考成绩查询&#xff1b;教育公告信息为传统的信息页面&#xff0c;小升…...

01 设计模式和设计原则

类设计原则&#xff1a; 单一职责原则&#xff08;Single Responsibility Principle&#xff0c;SRP&#xff09;&#xff1a;实现类要职责单一开闭原则&#xff08;Open Close Principle&#xff0c;OCP&#xff09;&#xff1a;对扩展开放&#xff0c;对修改关闭里氏替换原则…...

Github 2025-03-23 php开源项目日报Top10

根据Github Trendings的统计,今日(2025-03-23统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目10TypeScript项目1JavaScript项目1Shell项目1Laravel: 以优雅语法简化Web开发 创建周期:4028 天开发语言:PHP协议类型:MIT LicenseSt…...

macbook电脑如何清理键盘防止误触

M1芯片的MacBook电脑关机后按任意键开机&#xff0c;是苹果的功能设计。这样设计的目的是为了方便用户&#xff0c;让用户在想要使用电脑时能快速开机。但是清理电脑键盘的时候却成为了一种苦恼 以下是一些清理 MacBook 键盘防止误触的方法&#xff1a; 使用工具锁定键盘 Cle…...

AIMB-ASMB-788B(PPC-MB-620B)RAID驱动安装(笔记版)

创建RAID后安装系统时看不到磁盘信息&#xff0c;以下案例是安装windows10系统时如何安装主板RAID驱动&#xff0c;由于是笔记版不做过多介绍。 RAID驱动链接&#xff1a;https://advdownload.advantech.com.cn/productfile/Downloadfile1/1-2MAHDQD/AIMB-788_788E_RAID_AHCI_…...

深度分页优化思路

深度分页优化思路 思考以下问题 查询以下SQL的流程是怎么样的呢&#xff1f; 为什么只查询10条数据需要7秒&#xff1f; # 查询时间7秒 SELECT * FROM user ORDER BY age LIMIT 1000000, 10问题分析 为什么分页查询随着翻页的深入&#xff0c;会变得越来越慢。 其实&#xff0…...

K8S学习之基础五十四:jenkins新建测试流水线

jenkins新建测试流水线 新建任务 node(testak) {stage(第1步:从gitee上下载源代码) {git url: "https://gitee.com/akang007/jenkins-sample"script {build_tag sh(returnStdout: true, script: git rev-parse --short HEAD).trim()}}stage(第2步&#xff1a;基…...

HarmonyOS NEXT(九) :图形渲染体系

HarmonyOS NEXT&#xff08;九&#xff09; &#xff1a;图形渲染体系 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;可以分享一下给大家。点击跳转到网站。 https://www.captainbed.cn/ccc 文章目录 HarmonyOS NEXT&#xff0…...

SQLAlchemy关键词搜索技术深度解析:从基础过滤到全文检索

在数据驱动的应用开发中&#xff0c;基于关键词的模糊查询是常见的业务需求。SQLAlchemy作为Python生态中最流行的ORM框架&#xff0c;提供了多种实现关键词搜索的技术方案。本文将从性能、适用场景和技术复杂度三个维度&#xff0c;系统对比分析SQLAlchemy中关键词搜索的最佳实…...

ES数据过多,索引拆分

公司企微聊天数据存储在 ES 中&#xff0c;虽然按照企业分储在不同的ES 索引中&#xff0c;但某些常用的企微主体使用量还是很大。4年中一个索引存储数据已经达到46多亿条数据&#xff0c;占用存储3.1tb, ES 配置 由于多一个副本&#xff0c;存储得翻倍&#xff0c;成本考虑…...

Rust 与 FFmpeg 实现视频水印添加:技术解析与应用实践

引言 在短视频、直播、影视制作等领域&#xff0c;视频水印是一种常见的工具&#xff0c;用于保护版权、提升品牌辨识度或满足合规性要求。然而&#xff0c;开发者在实现水印添加时往往面临以下挑战&#xff1a; 手动处理效率低&#xff1a;使用图像编辑软件&#xff08;如 P…...

Python语言的游戏物理

Python语言的游戏物理 引言 在现代游戏开发中&#xff0c;物理引擎是一个重要的组成部分&#xff0c;通过模拟真实世界的物理现象&#xff0c;增加了游戏的沉浸感和可玩性。Python作为一种高效、易用的编程语言&#xff0c;虽然在性能方面不如C等语言&#xff0c;但其灵活性和…...

uni-app自动升级功能

效果图 一、VUE login.vue <template><view><view class"uni-common-mt"><view class"uni-flex uni-column"><view class"flex-item flex-item-V"><view class"logo"><image src"/st…...

使用AI一步一步实现若依(26)

功能26&#xff1a;新增一个新员工培训页面 功能25&#xff1a;角色管理 功能24&#xff1a;菜单管理 功能23&#xff1a;从后端获取路由/菜单数据 功能22&#xff1a;用户管理 功能21&#xff1a;使用axios发送请求 功能20&#xff1a;使用分页插件 功能19&#xff1a;集成My…...

逻辑回归(Logistic Regression)模型的概率预测函数

以二分类问题为例&#xff0c;常见的损失函数有 负对数似然损失(neg log-likelihood loss)&#xff0c;交叉熵损失(cross entropy loss)&#xff0c;deviance loss指数损失(exponential loss)。 前三者虽然名字不同&#xff0c;但却具有相同的表达形式。此外&#xff0c;neg …...

【零基础学python】python高级语法(四)

接续上面的系列文章&#xff1a; 【零基础学python】python基础语法&#xff08;一&#xff09;-CSDN博客 【零基础学python】python基础语法&#xff08;二&#xff09;-CSDN博客 【零基础学python】python高级语法&#xff08;三&#xff09;-CSDN博客 目录 2&#xff0c…...

HarmonyOS 之 @Require 装饰器自学指南

在 HarmonyOS 应用开发工作中&#xff0c;我频繁碰到组件初始化传参校验的难题。在复杂的组件嵌套里&#xff0c;要是无法确保必要参数在构造时准确传入&#xff0c;就极易引发运行时错误&#xff0c;而且排查起来费时费力。一次偶然的机会&#xff0c;我接触到了 Require 装饰…...

Redis Cluster 详解

Redis Cluster 详解 1. 为什么需要 Redis Cluster&#xff1f; Redis 作为一个高性能的内存数据库&#xff0c;在单机模式下可能会遇到以下问题&#xff1a; 单机容量受限&#xff1a;Redis 是基于内存存储的&#xff0c;单机的内存资源有限&#xff0c;单实例的 Redis 只能…...

基于CNN的FashionMNIST数据集识别6——ResNet模型

前言 之前我们在cnn已经搞过VGG和GoogleNet模型了&#xff0c;这两种较深的模型出现了一些问题&#xff1a; 梯度传播问题 在反向传播过程中&#xff0c;梯度通过链式法则逐层传递。对于包含 L 层的网络&#xff0c;第 l 层的梯度计算为&#xff1a; 其中 a(k) 表示第 k层的…...

0323-B树、B+树

多叉树---->B树&#xff08;磁盘&#xff09;、B树 磁盘由多个盘片组成&#xff0c;每个盘片分为多个磁道和扇区。数据存储在这些扇区中&#xff0c;扇区之间通过指针链接&#xff0c;形成链式结构。 内存由连续的存储单元组成&#xff0c;每个单元有唯一地址&#xff0c;数…...

深度学习3-pytorch学习

深度学习3-pytorch学习 Tensor 定义与 PyTorch 操作 1. Tensor 定义&#xff1a; Tensor 是 PyTorch 中的数据结构&#xff0c;类似于 NumPy 数组。可以通过不同方式创建 tensor 对象&#xff1a; import torch# 定义一个 1D Tensor x1 torch.Tensor([3, 4])# 定义一个 Fl…...

【工作记录】F12查看接口信息及postman中使用

可参考 详细教程&#xff1a;如何从前端查看调用接口、传参及返回结果&#xff08;附带图片案例&#xff09;_f12查看接口及参数-CSDN博客 1、接口信息 接口基础知识2&#xff1a;http通信的组成_接口请求信息包括-CSDN博客 HTTP类型接口之请求&响应详解 - 三叔测试笔记…...

正则表达式-万能表达式

1、正则 正则表达式是一组由字母和符号组成的特殊文本, 它可以用来从文本中找 出满足你想要的格式的句子. {“basketId”: 0, “count”: 1, “prodId”: #prodId#, “shopId”: 1, “skuId”: #skuId#} #prodId# re相关的文章&#xff1a; https://www.cnblogs.com/Simple-S…...