【题解】Luogu B4185 [中山市赛 2024/科大国创杯小学组 2023] 倍数子串/子串

news/2026/1/14 17:41:11/文章来源:https://www.cnblogs.com/Seqfrel/p/19343678

明明是很容易的题模拟赛却没注意到。

数学、模拟

题意

略。

思路

不妨从 \(5\) 下手。一数仅当最后一位是 \(0\)\(5\) 时,该数才是 \(5\) 的倍数。因此如果第 \(i\) 位是 \(0\)\(5\),所有最后一位是 \(5\) 的连续子串都满足条件,子串数量 \(+i\)

同理,由于 \(100\)\(4\) 的倍数,所以一数只需后两位是 \(4\) 的倍数,该数就是 \(4\) 的倍数。因此如果第 \(i\)\(i-1\) 位构成了 \(4\) 的倍数,则所有以此两位结尾的子串也都满足条件,子串数量 \(+i-1\)。特别地,当第 \(i\) 位或第 \(i-1\) 位是 \(4\)\(8\) 时,这两位也应参与计数。

考虑一个更优化的做法。一个两位数是 \(4\) 的倍数有两种情况:末位为 \(2\)\(6\) 和末位为 \(4\)\(8\)。通过观察不难得出,第一种情况仅十位是奇数时成立,第二种情况仅十位是偶数时成立。这样在代码求解时会更简洁。

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#define int long long
using namespace std;
const int N=1e6+10;
int n,ans;
char s[N];
signed main(){scanf("%s",s+1);n=strlen(s+1);for(int i=1;i<=n;i++){if(s[i]=='0'||s[i]=='5') ans+=i;else if(s[i]=='4'||s[i]=='8'){if((s[i-1]-'0')%2) ans+=1;else ans+=i;}else if(s[i]=='2'||s[i]=='6'){if((s[i-1]-'0')%2) ans+=i-1;} }printf("%lld\n",ans);return 0;
}

时间复杂度 \(O(n)\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1004768.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能客服机器人产品设计

目录完整的导购 FSM(有限状态机)设计 — 可直接交付给产品/架构/开发2. 状态表(每个状态的定义、触发条件、允许动作、默认 CTA、工具调用)GREETINGNEED_DISCOVERYPRODUCT_MATCHRECOMMENDATIONCOMPARISONOBJECTION…

JavaScript 异常原因(Error Cause):实现分布式系统错误链追踪的序列化与反序列化

在现代复杂的分布式系统中&#xff0c;服务的协同工作是常态。然而&#xff0c;服务的相互依赖也带来了巨大的挑战&#xff0c;尤其是在错误处理和故障诊断方面。当一个请求流经多个微服务时&#xff0c;任何一个环节的失败都可能导致整个业务流程中断。要高效地定位问题的根源…

毕业论文任务书范文推荐:7大平台+AI修改工具

毕业论文任务书范文推荐&#xff1a;7大平台AI修改工具 工具名称 核心功能 生成速度 适用场景 独特优势 aibiye 论文初稿生成 20-30分钟 全学科通用 自动插入图表公式 aicheck 初稿查重 20-30分钟 急需查重场景 独创降AIGC算法 askpaper 初稿生成 20-30分钟 …

天远多头借贷行业风险版API接口调用代码流程、接入方法以及应用场景

一、精细化风控时代的“多头”计量工具 在互金与银行信贷业务中&#xff0c;“多头借贷”&#xff08;Multi-Lending&#xff09;往往是借款人资金链断裂的前兆。然而&#xff0c;传统的借贷次数统计已难以满足精细化风控的需求——借款人是在银行申请房贷&#xff0c;还是在夜…

Python字典与集合:解锁高效数据处理的关键,90%的人没吃透这几点

Python字典与集合:解锁高效数据处理的关键,90%的人没吃透这几点 在Python数据结构家族中,字典(dict)和集合(set)是隐藏的“性能王者”。相比于列表和元组,它们在查找、添加、删除操作上的效率呈指数级提升,尤…

详细介绍:完整事务性能瓶颈分析案例:支付系统事务雪崩优化

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

计算机论文选题推荐:9大AI+热门方向排名

计算机论文选题推荐&#xff1a;9大AI热门方向排名 &#xfffd;&#xfffd; 9大AI选题方向速览 排名 选题方向 创新指数 研究热度 就业前景 1 大模型微调与应用 ⭐⭐⭐⭐⭐ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;&…

JavaScript 记录(Records)与 元组(Tuples):实现堆内存中不可变复合数据结构的内存布局

JavaScript作为一门动态、弱类型的语言&#xff0c;其灵活性在带来了开发效率的同时&#xff0c;也引入了管理复杂状态和确保数据完整性的挑战。长期以来&#xff0c;JavaScript开发者在处理不可变数据结构时&#xff0c;不得不依赖于浅层冻结&#xff08;如Object.freeze()&am…

虚函数虚表

一、基本原理1.虚函数&#xff1a;用virtual关键字生声明的函数&#xff0c;允许派生类重写2.虚表&#xff1a;每个包含虚函数的类&#xff08;或其派生类&#xff09;会有一个全局唯一的虚表&#xff0c;存储该类所有虚函数的地址3.虚指针&#xff08;vptr&#xff09;&#x…

5 分钟快速入门 Github Actions

GitHub Actions 是 GitHub 官方提供的 CI/CD 解决方案&#xff0c;它内置于 GitHub 平台&#xff0c;用于自动化你的软件构建、测试和部署工作流。&#x1f680; 快速入门 GitHub Actions&#xff1a;自动化你的开发流程 核心概念&#xff1a;理解 Actions 的基石 在开始编写配…

线程并发编程,同步与互斥机制

线程 概念 线程是一个轻量级的进程&#xff0c;为了提高系统的性能引入线程。 线程和进程都参与统一的调度。 在同一个进程中可以创建多个线程&#xff0c;并且共享进程资源。 进程和线程区别(面试题) 相同点&#xff1a;都为操作系统提供了并发执行的能力 不同点&#xff1a; …

Python列表与元组:搞懂这3个核心差异,再也不纠结用哪个

Python 列表与元组:搞懂这 3 个核心差异,再也不纠结用哪个 Python列表与元组:搞懂这3个核心差异,再也不纠结用哪个 在Python编程的世界里,数据结构是构建一切的基石。而列表(list)和元组(tuple),作为Python中…

MQ消息队列相关知识与对比

一、MQ相关的概念 1.1 什么是MQ? MQ&#xff0c;即Message Queue&#xff08;消息队列&#xff09;&#xff0c;是一种基于“生产者-消费者”模式的分布式通信中间件。从字面意思上看就个 FIFO 先入先出的队列&#xff0c;只不过队列中存放的内容是 message 而已&#xff0c…

完整教程:PPT导出为图片的格式选择:JPG与PNG的区别

完整教程:PPT导出为图片的格式选择:JPG与PNG的区别pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&quo…

不能头脑简单地搞“凡是”:凡是偶数2n(n的变域是N)必∈N

不能头脑简单地搞“凡是”&#xff1a;凡是偶数2n&#xff08;n的变域是N&#xff09;必∈N黄小宁设一游击队有无穷多个队员&#xff0c;队中各人都配有一枪。各枪都有枪号&#xff0c;将配有 n 号枪的人记为 n 号人&#xff0c;队中枪与人已一一配对&#xff1a; n 号人↔n 号…

已有析音法

已有析音法 析音法是分析语音的方法。分析语音&#xff0c;就是对语音作分析&#xff0c;被简称为析音。因此&#xff0c;分析语音的方法被简称为析音法。在汉语中&#xff0c;在学术上&#xff0c;析音法过去通常被称呼为语音分析法或音节分析法。 在汉语中&#xff0c;析音…

Docker 两大基石:Namespace 和 Cgroups

&#x1f6e0;️ Docker 两大基石&#xff1a;解密 Namespace 与 Cgroups 的核心魔力 容器技术&#xff0c;尤其是 Docker&#xff0c;已经彻底改变了软件的构建、交付和运行方式。但其背后的魔力究竟是什么&#xff1f;为什么一个简单的进程&#xff0c;就能拥有一个“独立”的…

告别排版困境!AI 写作到发布全自动化的完整方案

告别排版困境&#xff01;AI 写作到发布全自动化的完整方案 你是否也经历过这样的崩溃时刻&#xff1a; 好不容易用 AI 写出了一篇高质量的技术文章或热点评论&#xff0c;结果从 ChatGPT/DeepSeek 复制到今日头条后台时&#xff0c;格式全乱了&#xff1f; ❌ Markdown 语法不…

9、Eclipse集成开发环境:C/C++开发全流程指南

Eclipse集成开发环境:C/C++开发全流程指南 1. Eclipse界面元素概述 Eclipse的工作区窗口包含编辑器(Editors)、视图(Views)和透视图(Perspectives)。 - 编辑器 :允许打开、编辑和保存对象,遵循打开 - 保存 - 关闭的生命周期,与基于文件系统的工具类似,但更紧密…

享搭提醒助手:数据变动实时预警,运营者业务状态“尽在掌握”

目录 一、新数据提交提醒&#xff1a;运营效率的 “即时加速器” 二、到期提醒&#xff1a;业务节点的 “智能时间管家” 2.1 自定义配置&#xff0c;适配多元需求 2.2 无缝对接&#xff0c;零门槛使用 三、周期性 / 定时提醒&#xff1a;常态化运营的 “自动化体系” 3.1 灵活…