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

南昌网站建设 南昌做网站公司站长工具爱站

南昌网站建设 南昌做网站公司,站长工具爱站,有没有代做模型的网站,内蒙古微网站建设题目描述 给定一个长度为 NN 的数列,A1,A2,⋯ANA1​,A2​,⋯AN​,如果其中一段连续的子序列 Ai,Ai1,⋯Aj(i≤j)Ai​,Ai1​,⋯Aj​(i≤j) 之和是 KK 的倍数,我们就称这个区间 [i,j][i,j] 是 KK 倍区间。 你能求出数列中总共有多少个 KK 倍区…

题目描述

给定一个长度为 NN 的数列,A1,A2,⋯ANA1​,A2​,⋯AN​,如果其中一段连续的子序列 Ai,Ai+1,⋯Aj(i≤j)Ai​,Ai+1​,⋯Aj​(i≤j) 之和是 KK 的倍数,我们就称这个区间 [i,j][i,j] 是 KK 倍区间。

你能求出数列中总共有多少个 KK 倍区间吗?

输入格式

第一行包含两个整数 NN 和 KK(1≤N,K≤105)(1≤N,K≤105)。

以下 NN 行每行包含一个整数 AiAi​(1≤Ai≤105)(1≤Ai​≤105)。

输出格式

输出一个整数,代表 KK 倍区间的数目。

输入输出样例

输入 #1复制

5 2
1  
2  
3  
4  
5  

输出 #1复制

6

说明/提示

时限 2 秒, 256M。蓝桥杯 2017 年第八届

做法

这题我们用前缀和来写,暴力做法是对于每个右端点,枚举每个左端点,符合的区间就加一,当然,这太暴力了。我们求区间个数一般都是先遍历右端点,然后左端点个数 O(1) 就能求出来了,就是直接查询。

然后我们想,qzh[i]-qzh[j](区间j+1到i)是k的倍数,就是qzh[i]-qzh[j]在余k的条件下和0相同,那就是qzh[i]在余k的条件下和qzh[j]相同。那么,我们枚举右端点,只要有和它的余数相同的,就是符合的左端点。但是这样复杂度并没有降下去。

其实正确做法是,我们知道了0到k-1的每个余数的个数,那么我们就从中选两个,有多少种组合,就有多少个区间。这就用到了组合数。

有一个特殊情况,当余数是0时,单个也是符合条件的,所以要再加上余数是0的个数。

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a,k,sum,ans;
map<int,int> mp;
signed main(){ios::sync_with_stdio(0);cin.tie(0);cin>>n>>k;for(int i=1;i<=n;i++){cin>>a;sum+=a%k;sum%=k;mp[sum]++;}for(int i=0;i<k;i++){if(i==0) ans+=mp[i]*(mp[i]-1)/2+mp[i];else{ans+=mp[i]*(mp[i]-1)/2;}}cout<<ans;}

http://www.ds6.com.cn/news/96018.html

相关文章:

  • 青州哪里做网站做得好信息发布推广方法
  • 沧州网站制作多少钱摘抄一篇新闻
  • 开业时网站可以做哪些活动苏州seo网站管理
  • 网站 制作公司引擎搜索器
  • 挂甲寺网站建设深圳今日头条新闻
  • 第三方网站建设平台seo是指搜索引擎营销
  • 在线制作文字合肥seo公司
  • 音频网站建设东莞网站建设seo
  • Mui框架做网站商家怎么入驻百度
  • 苏州做网站的公司seo技术交流
  • 专门做房产的网站广州网站建设费用
  • 可以做推广的门户网站怎么制作网站二维码
  • 昆山建设招标信息网站抄一则新闻四年级
  • 增加网站访客搜索推广渠道
  • 玉田县建设局网站免费舆情监测平台
  • 天津哪家做企业网站网站推广的作用在哪里
  • wordpress 分块首页seo小白入门教学
  • 广东模板建站平台seo自动优化软件下载
  • 简易的网站模板互联网项目
  • 网上做网站怎么赚钱吗英文网站seo
  • 如何引导企业老板做网站百度快照官网
  • 网站根目录文件宁波正规优化seo公司
  • 果麦传媒的网站怎么做的什么网站做推广比较好
  • 中山做网站哪家专业百度搜索风云榜人物
  • 网站建网站建设seo帮帮您厦门seo排名公司
  • 资讯网站策划怎么写sem是什么意思中文
  • 深圳网站开发哪个公司好深圳市昊客网络科技有限公司
  • 现在用什么工具做网站好百度一下就知道了官网榡
  • 品牌网站怎么做seo营销战略有哪些内容
  • 石家庄平山网站推广优化公司网站怎么建立