K倍区间 刷题笔记

news2025/3/12 13:48:08

法一 前缀和暴力搜索 (数据大会超时)

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
const int N=100010;
int a[N],s[N];
int n,k;
int main(){
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        s[i]=s[i-1]+a[i];
    }    
    int cnt=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=i;j++){
            int ans=s[i]-s[j-1];
            if(ans%k==0){
                cnt++; 
            }
        }
    }
    cout<<cnt;
    return 0;
}`

法二  根据 式子推导

if((s[i]-s[j-1])%k==0)答案++;

换句话说  s[i]和s[j-1]对k取模的余数是一样的

此处 拿样例

5 2 

1 2 3 4 5

可以看到s1,s2,s5,对k取模的余数是一样的

且s[0]%k=0;

s2和s1,s5和s1,s5和s2能构成三个k倍区间 

s3和s0,s4和s0,s4和s3能构成三个k倍区间所以一共六个K倍区间

因此

我们引出 开一个cnt数组来记录该余数的出现次数

例如 余数2出现了两次 说明当前已经有两个s[l-1]对k取模余数为2

后面一旦出现当前余数2 就可以与这两个s[l-1]形成k倍区间

所以 答案+上目前余数出现的次数 

然后此时余数2已经出现三次  则让cnt[2]++;即cnt[2]=3;

将其标记为出现三次  后面一旦再出出现余数2的s[r]

答案直接+3 同时将余数2 标记成四次

代码

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
typedef long long ll;
 
const int N=100010;
ll a[N],s[N],cnt[N];
ll n,k;
int main(){
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        s[i]=s[i-1]+a[i];
    }    
    ll res=0;
    cnt[0]=1;
    for(int i=1;i<=n;i++){
         res+=cnt[s[i]%k];
         cnt[s[i]%k]++;
    }
    cout<<res;

    return 0;
}

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

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

相关文章

面试题 -- UI控件

文章目录 一、CAAnimation的层级结构二、 UITableView优化三、离屏渲染四、Autolayout本质原理五、生成二维码的步骤 一、CAAnimation的层级结构 二、 UITableView优化 Cell复用机制Cell高度预先计算缓存Cell高度圆角切割 三、离屏渲染 指的是GPU在当前屏幕缓冲区以外新开辟…

Unity性能优化篇(九) 模型优化之LOD技术概述以及操作方法

LOD模型优化技术概述: 1.LOD技术可以根据摄像头远近来显示不同精度的模型(例如吃鸡游戏 随着跳伞高度 来显示下面树木以及建筑的模型精度) LOD模型优化技术操作方法: 可使用Unity自带的LOD Group组件&#xff0c;并根据项目的情况来调整该组件的属性。Untiy资源商店也有一些其…

Zabbix(三)

监控Nginx服务 nginx配置 增加location{} [rootwenzi ~]#vim /etc/nginx/sites-enabled/defaultserver_name _; #_是通配符。服务器将响应任何域名的请求 ...location /status { stub_status;} ...访问 http://IP/status 即可 zabbix配置 Nginx by HTTP&#xff1a;无…

VS2022打包C#安装包(最新、最全)

开发c#的一个小工具到打包环境碰壁了&#xff0c;在网上找了很多资料耶踩了很多坑&#xff0c;耗时1hour才打包完毕&#xff0c;避免以后碰到类似的问题再次记录&#xff0c;自认为步骤比较全面&#xff0c;如果有帮助麻烦点个赞呗&#xff01;&#xff01;&#xff01; 一、Mi…

Node.js 最佳实践:改善你的应用程序设计 | 开源日报 No.191

goldbergyoni/nodebestpractices Stars: 92.4k License: CC-BY-SA-4.0 Node.js Best Practices 是一个关于 Node.js 最佳实践的开源项目。该项目汇总了许多顶级内容&#xff0c;包括 80 多个最佳实践、样式指南和架构技巧。以下是该项目的核心优势和主要功能&#xff1a; 提供…

基于el-tree实现懒加载穿梭条

一、关键代码 <template><div><!-- 左侧待选列表 --><div class"left-box"><p>待选列表</p><el-input placeholder"输入关键词过滤" v-model"leftFilterText" clearable/><el-treeref"tree…

css3中nth-child属性作用及用法剖析

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 标题&#xff1a;CSS3中nth-child属性作用及用法剖析 摘要&#xff1a;CSS3中的nth-child选择器允许我们根据元素位置来定位特定的元素…

最简单的基于 FFmpeg 的 AVDevice 例子(读取摄像头)

最简单的基于 FFmpeg 的 AVDevice 例子&#xff08;读取摄像头&#xff09; 最简单的基于 FFmpeg 的 AVDevice 例子&#xff08;读取摄像头&#xff09;简介libavdevice 使用注意事项源程序结果工程文件下载参考链接 最简单的基于 FFmpeg 的 AVDevice 例子&#xff08;读取摄像…

遥感与ChatGPT:科研中的强强联合

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已逐渐渗透到各个领域&#xff0c;为传统行业带来了前所未有的变革。其中&#xff0c;遥感技术作为观测和解析地球的重要手段&#xff0c;正逐渐与AI技术相结合&#xff0c;为地球科学研究与应用提供了全新的…

Android SDK2 (实操三个小目标)

书接上回&#xff1a;Android SDK 1&#xff08;概览&#xff09;-CSDN博客 今天讲讲三个实际练手内容&#xff0c;用的是瑞星微的sdk。 1 实操编译Android.bp 首先还是感叹下&#xff0c;现在的系统真的越搞越复杂&#xff0c;最早只有gcc&#xff0c;后面多了make&#xf…

Xilinx高级调试方法--远程调试

Xilinx高级调试方法--远程调试 1 虚拟电缆调试2 FPGA设计2.1 扩展配置接口 3 PCIe-XVC驱动3.1 PCIe-XVC驱动3.2 XVC-Server 4 Vivado Design Suite4.1 同一台主机4.2 不同主机 本文主要介绍Xilinx的一些高级调试方法&#xff0c;以及如何使用Xilinx的相关IP。 1 虚拟电缆调试 …

UR机器人装箱姿态

1.官网手册上并没有给出该打包位姿 2.一般厂家发回来的机器人都会有这个打包程序 可以运行这个程序&#xff0c;如果有的话。 3.打包点位 如果没有这个这个&#xff0c;也可以直接按下面点位来&#xff0c;都是差不多的点位&#xff0c;可以放到包装箱中的 这个是UR10的 这个…

linux系统上安装docker 并配置国内镜像

目录 1.安装docker 2.配置国内镜像源 1.安装docker 首先要安装一个yum工具 yum install -y yum-utils 安装成功后&#xff0c;执行命令&#xff0c;配置Docker的yum源&#xff1a; yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo …

代码之旅:我的算法探索之路(一)力扣 两数之和 三数之和问题

LeetCode 第1题 两数之和 题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能…

【学习笔记】计算机视觉深度学习网络模型

这是本人学习计算机视觉CV领域深度学习模型的学习的一点点学习笔记&#xff0c;很多片子没有完成&#xff0c;可以作为学习的参考~

1.初识python

1.初识python 编程语言是用来定义计算机程序的语言&#xff0c;用来向计算机发出指令。 1.python语言是一种面向对象的解释型高级编程语言。 解释型语言&#xff1a;使用专门的解释器对源码程序逐行解释成特定平台的机器并立即执行&#xff0c;是代码在执行时才被解释器一行行…

Elasticsearch模拟网络丢包

背景 Elasticsearch一旦遇到网络抖动就可能节点&#xff08;单个或者多个&#xff09;掉出集群。从而集群出现red/yellow状态&#xff0c;理论情况下ES会自愈&#xff0c;但某些情况下可能非预期&#xff0c;此时就需要我们模拟各种case了&#xff0c;比如网络丢包。 操作 1…

Fabric V2.5 通用溯源系统——应用前端部分设计及简易二次开发

本节对Fabric V2.5 通用溯源系统的前端部分做一个简单的介绍。包括目录结构、文件作用简述、用户注册登录实现、农产品信息上链溯源实现的介绍。同时提供了简易二次开发的教程(面向需要在短时间内二次开发),将本项目修改为商品溯源项目,仅修改前端部分。本节内容需要订阅《…

BUUCTF--极客大挑战php

文章目录 1.网站备份文件www.zip2.下载后发现class.phpindex.phpflag.php 3.分析php代码绕过__wakeup方法变量权限为私有或保护python方法url方法 1.网站备份文件www.zip 2.下载后发现 class.php <?php include flag.php; error_reporting(0);class Name{private $usernam…

20240306-1-大数据的几个面试题目

面试题目 1. 相同URL 题目: 给定a、b两个文件&#xff0c;各存放50亿个url&#xff0c;每个url各占64字节&#xff0c;内存限制是4G&#xff0c;让你找出a、b文件共同的url&#xff1f; 方案1&#xff1a;估计每个文件的大小为50G64320G&#xff0c;远远大于内存限制的4G。所以…