Acwing第53场周赛 T2:整除子串反思

简介: Acwing第53场周赛 T2:整除子串反思

给定一个由数字组成的字符串 s,请你计算能够被 4 整除的 s 的子串数量。


子串可以包含前导 0。


例如,如果 s 为 124,则满足条件的子串有 4 个:12,4,24,124;如果 s 为 04,则满足条件的子串有 33 个:0,4,04。


输入格式


一个由数字组成的字符串 s。


输出格式


一个整数,表示满足条件的子串数量。


数据范围


前 4 个测试点满足 1≤|s|≤10。

所有测试点满足 1≤|s|≤3×105

输入样例1:

124

输出样例1:

4

输入样例2:

04

输出样例2:

3

输入样例3:

5810438174

输出样例3:

9

做的时候没出来,后来去y总直播间,


学到了:原来就是一个小学奥数题hh;


如果x(x的长度大于等于2)能整除4,那么x末尾两位组成的数字能整除4(充要条件)


待会儿会证明(并且研究能被N整除的数的特征)


那么只需要遍历一遍字符串就可以了


如果末尾两个符合添加,res+=i(i种选择)


注意两种特判:遍历时i = 0情况,由于遍历时,是研究以x[i]结尾的所有子串的情况,而以x[i]结尾的子串分两类,一类长度为1,一类长度>=2,长度为1特判一下;

#include <iostream>
using namespace std;
typedef long long ll;
int main()
{
    ll res = 0;
    string x;
    cin >> x;
    if (x[0]%4==0) res++;
    for (int i = 1;i<x.size();i++)
    {
       if (((x[i]-'0')+10*(x[i-1]-'0'))%4 == 0) 
            res += i;
        if (x[i]%4==0) res++;
    }
    cout<<res;
    return 0;
}

研究能被N整除的数的特征(研究自然数)

N            限定条件 下面附手写证明图


05655f918fdb466fa06de8bf8ccf081d.jpg

image.jpeg


奔赴热爱 奔赴山海!体会数学之美 算法之美

目录
打赏
0
0
0
0
12
分享
相关文章
TensorRT 模型加速——输入、输出、部署流程
本文首先简要介绍 Tensor RT 的输入、输出以及部署流程,了解 Tensor RT 在部署模型中起到的作用。然后介绍 Tensor RT 模型导入流程,针对不同的深度学习框架,使用不同的方法导入模型。
2164 1
带你读《深度学习与图像识别:原理与实践》之一:机器视觉在行业中的应用
这是一部从技术原理、算法和工程实践3个维度系统讲解图像识别的著作,由阿里巴巴达摩院算法专家、阿里巴巴技术发展专家、阿里巴巴数据架构师联合撰写。在知识点的选择上,本书广度和深度兼顾,既能让完全没有基础的读者迅速入门,又能让有基础的读者深入掌握图像识别的核心技术;在写作方式上,本书避开了复杂的数学公式及其推导,从问题的前因后果 、创造者的思考过程,利用简单的数学计算来做模型分析和讲解,通俗易懂。更重要的是,本书不仅仅是聚焦于技术,而是将重点放在了如何用技术解决实际的业务问题。
Java/JDK下载、安装与环境变量配置超详细教程(2022更新)保姆级,秒会
Java/JDK下载、安装与环境配置超详细教程(2022更新)保姆级,小白秒会[学习必备,建议收藏]。包含JDK8、JDK11、JDK17、JDK19等,本文将从JDK的下载与安装讲起,在从配置到第一个HelloWrold实践结束。在观看本文前我们需要知道JDK是什么,有什么作用?JDK是Java的开发工具包,包括JVM虚拟机,核心类库,开发工具。
26152 0
Java/JDK下载、安装与环境变量配置超详细教程(2022更新)保姆级,秒会
【AI系统】MobileNet 系列
本文详细介绍 MobileNet 系列模型,重点探讨其轻量化设计原则。从 MobileNetV1 开始,通过深度可分离卷积和宽度乘数减少参数量,实现低延迟、低功耗。后续版本 V2、V3、V4 逐步引入线性瓶颈、逆残差、Squeeze-and-Excitation 模块、新型激活函数 h-swish、NAS 搜索等技术,持续优化性能。特别是 MobileNetV4,通过通用倒瓶颈(UIB)和 Mobile MQA 技术,大幅提升模型效率,达到硬件无关的 Pareto 最优。文章结合最新深度学习技术,全面解析各版本的改进与设计思路。
1176 8
|
7月前
|
探索Java NIO:究竟在哪些领域能大显身手?揭秘原理、应用场景与官方示例代码
Java NIO(New IO)自Java SE 1.4引入,提供比传统IO更高效、灵活的操作,支持非阻塞IO和选择器特性,适用于高并发、高吞吐量场景。NIO的核心概念包括通道(Channel)、缓冲区(Buffer)和选择器(Selector),能实现多路复用和异步操作。其应用场景涵盖网络通信、文件操作、进程间通信及数据库操作等。NIO的优势在于提高并发性和性能,简化编程;但学习成本较高,且与传统IO存在不兼容性。尽管如此,NIO在构建高性能框架如Netty、Mina和Jetty中仍广泛应用。
156 3
卸载原有的cuda,更新cuda
本文提供了一个更新CUDA版本的详细指南,包括如何查看当前CUDA版本、检查可安装的CUDA版本、卸载旧版本CUDA以及安装新版本的CUDA。
6454 3
卸载原有的cuda,更新cuda
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
文章主要介绍了排序算法的分类、时间复杂度的概念和计算方法,以及常见的时间复杂度级别,并简单提及了空间复杂度。
280 1
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
|
10月前
|
linux安装单机版redis详细步骤,及python连接redis案例
这篇文章提供了在Linux系统中安装单机版Redis的详细步骤,并展示了如何配置Redis为systemctl启动,以及使用Python连接Redis进行数据操作的案例。
232 3
五、Flask的请求和响应方法与常用技巧
五、Flask的请求和响应方法与常用技巧
248 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等