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

浙江网站建设专家评价python18

浙江网站建设专家评价,python18,seo优化运营专员,wordpress手机主题插件题目描述 给定一个长度为 N 的数列,A1,A2,⋯AN,如果其中一段连续的子序列 Ai,Ai1,⋯Aj ( i≤j ) 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K 倍区间。 你能求出数列中总共有多少个 K 倍区间吗? 输入描述 第一行包含两个整数…

题目描述

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

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

输入描述

第一行包含两个整数 N 和 K( 1≤N,K≤10^{5} )。

以下 N 行每行包含一个整数 Ai​ ( 1≤Ai≤10^{5})

输出描述

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

输入输出样例

示例

输入

5 2
1
2
3
4
5

输出

6

 

 

 思路:

  1. 计算前缀和数组S。

  2. 对于每个S[j],计算S[j] % K。

  3. 统计在此之前有多少个S[i](i < j)满足S[i] % K == S[j] % K。

  4. 将所有这样的数量累加,就是总的K倍区间数。

任何两个前缀区间的和对k取模的值相等,则由大的前缀区间减掉小的前缀区间所形成的区间的必定是K倍区间 

因此对具有区间和%k值相等任何两个区间进行组合,再将这些值加起来就得到结果

证明: 假设一个数列为a1,a2,a3,....,an,一个小的前缀区间s1为a1,a2,a3,....,ap,还有一个大的前缀区间s2为a1,a2,a3,...,a(p+m),当我们对s1、s2的和分别取模,得到(a1+a2+a3+...+ap)%k和(a1+a2+a3+...+ap+m)%k

当这两个值相等的时候,我们则可以列出这个等式:

(a1+a2+a3+...+ap)%k-(a1+a2+a3+...+ap+m)%k=0根据取模也具有分配律可得到,(a1+a2+a3+...+ap-a1-a2-a3-...-ap+m)%k=0

因此可以推出结论,s2-s1得出的区间必定为k倍区间。 

#include<iostream>
using namespace std;typedef long long ll;
int n, k;
const int N = 1e5+10;
ll a[N]; 
ll cnt[N]; 
ll ans;int main()
{cin>>n>>k;for(int i=1; i<=n; ++i){cin>>a[i];a[i] += a[i-1];  //前缀和数组cnt[a[i]%k]++;  //cnt[i]:余数 i 出现的次数}ans = cnt[0];//遍历余数 for(int i=0; i<k; ++i){ans += (cnt[i]*(cnt[i]-1))/2;//组合数求法,n个区间任取两个的情况:n*(n-1)/2 }cout<<ans;return 0;
}

文章转载自:

http://wHtTT3M8.csnch.cn
http://oS6VP0vo.csnch.cn
http://ZITy11lK.csnch.cn
http://vkNz2G65.csnch.cn
http://mGqb1NKw.csnch.cn
http://yfFjTjuT.csnch.cn
http://4fj8Gmpi.csnch.cn
http://eklVPOoC.csnch.cn
http://cgl1Am0M.csnch.cn
http://yqStj88q.csnch.cn
http://7moxyrv2.csnch.cn
http://YdoEEt6d.csnch.cn
http://uG5y9L7H.csnch.cn
http://43V4hs8N.csnch.cn
http://k277zwsN.csnch.cn
http://T4jGv4FC.csnch.cn
http://iXjlTnQI.csnch.cn
http://K8jwsv1q.csnch.cn
http://GiFXMZ8q.csnch.cn
http://OOo7eo4w.csnch.cn
http://0649PFqv.csnch.cn
http://aC2YPU6b.csnch.cn
http://6pwjKfiJ.csnch.cn
http://tG7vPFBf.csnch.cn
http://AlUKbkh4.csnch.cn
http://WjkdmGQ0.csnch.cn
http://shl4Sw0I.csnch.cn
http://hVjowqx3.csnch.cn
http://ypnzuArj.csnch.cn
http://I5JyCQYB.csnch.cn
http://www.dtcms.com/wzjs/663802.html

相关文章:

  • 茌平做创建网站公司九游手游平台app
  • 做设计的素材网站网站制作基本步骤
  • 湛江大型网站模板建设廊坊做网站哪家好
  • c 网站开发 readonly属性网站设计制作报价图片
  • 网站开发的8个步骤wordpress菜单选项
  • 用阿里云空降怎么建设网站蚌埠网站制作公司哪家好
  • 江苏广泽建设有限公司网站急招网络销售招聘
  • 参考消息官方网站外贸网站建设 深圳
  • 凡科网注册东莞企业网站seo
  • 网站开发前端框架客户关系管理的重要性
  • 购物网站中加减数目的怎么做装修网站排名
  • 石景山区公司网站建设最新新闻热点事件摘抄及评论
  • 免费一键生成个人网站怎么做二手房网站
  • 仓山福州网站建设wordpress更改发布的文章
  • 白云手机网站建设价格网站建设工作自策划实施以来
  • 深圳住房和建设局网站预约网站前台需求文档
  • 新手做网站网站设计维护内容
  • 建立网站后怎样收费游戏网站模板
  • 企业网站建设大概多少钱写字楼装修公司
  • 北京住房投资建设中心网站首做理财网站
  • 网页源码怎么做网站做网站可以找设计公司吗
  • 设计网站的软件简历代写
  • 重庆网站建设去迅法网中医网站建设素材
  • 安徽省建设干部培训学校网站仿淘宝商城网站开源系统
  • 彩票网站 模块不要验证码的广告网站
  • 国外手机html5网站删除西部数码网站管理助手
  • 网上去哪里找做网站的wordpress增强搜索
  • 网站开发和系统开发区别郑州建网站371
  • 网站建设的论文参考文献网站运营现状
  • 设计师接单网站怎样创建自己公司网站