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

昆明网站设计8888168兰州网站优化

昆明网站设计8888168,兰州网站优化,网页制作流程一共有几步,dede网站仿站经典工具解题思路 任何两个前缀区间的和对k取模的值相等,则由大的前缀区间减掉小的前缀区间所形成的区间的必定是K倍区间。因此我们可以对具有区间和%k值相等任何两个区间进行组合,再将这些值加起来就得到结果!证明: 假设一个数列为a1,a2…

在这里插入图片描述
在这里插入图片描述

解题思路

  1. 任何两个前缀区间的和对k取模的值相等,则由大的前缀区间减掉小的前缀区间所形成的区间的必定是K倍区间。
  2. 因此我们可以对具有区间和%k值相等任何两个区间进行组合,再将这些值加起来就得到结果!
  3. 证明: 假设一个数列为a1,a2,a3,…,an,一个小的前缀区间s1为a1,a2,a3,…,ap,还有一个大的前缀区间s2为a1,a2,a3,…,a(p+m),p,p+m<n。
  4. 当我们对s1、s2的和分别取模,得到(a1+a2+a3+…+ap)%k和(a1+a2+a3+…+ap+m)%k,当这两个值相等的时候。
  5. 我们则可以列出这个等式:(a1+a2+a3+…+ap)%k-(a1+a2+a3+…+ap+m)%k=0,根据取模也具有分配律可得到,(a1+a2+a3+…+ap-a1-a2-a3-…-ap+m)%k=0。
  6. 因此可以推出结论,s2-s1得出的区间必定为k倍区间。

代码实现

#include <iostream>
using namespace std;
long long a[100010];
long long cnt[100010];
long long ans = 0;
int main()
{cnt[0]++;int n, k; cin >> n >> k;for(int i = 1; i <= n; i++){cin >> a[i];a[i] += a[i-1];}for(int i = 1; i <= n; i++)  ans += cnt[a[i] % k]++;cout << ans;return 0;
}
http://www.zhongyajixie.com/news/41041.html

相关文章:

  • 免费建站还用学做网站吗移动排名提升软件
  • 哪个网站免费做简历重庆seo霸屏
  • 温州专业网站制作设计苏州seo服务
  • 企业网站建设维护方案1000个关键词
  • 如何找一家靠谱的网站建设公司专业网络推广公司
  • 泉州网站关键词推广费用百度网站下载
  • dw动态班级网站设计毕业论文百度广告代运营
  • wordpress 无广告视频插件下载吉林关键词排名优化软件
  • 温州建设局网站杭州百度首页优化
  • 个人业务网站建设品牌推广方式
  • 纺织网站建设网站内容管理系统
  • 怎么做公益网站优化大师好用吗
  • 网站seo怎么优化游戏推广怎么做
  • 网络网站知识app宁德市古田县
  • 公司国际网站怎么做宁波网络推广优化公司
  • 做搜狗手机网站优化首南宁seo费用服务
  • 做外贸用什么视频网站百度搜索下载app
  • vs2010做网站前台河南网站网络营销推广
  • 四川做网站有哪些公司网站如何优化
  • 旅游网站的设计与实现开题报告竞价运营是做什么的
  • 国内网站服务器seo推广一年要多少钱
  • 哈尔滨市最新疫情关系网站优化公司
  • 政府网站整站源码下载百度推广优化是什么意思
  • 旅游的网站怎么做的seo优化教学视频
  • 做网站需要什么技术网站优化招聘
  • 网站空间什么意思sem是什么品牌
  • 天津的网站建设seo方法
  • 中国上海网站首页关键词完整版免费听
  • 贵州企业官网建设陕西seo优化
  • 网站seo描述怎样宣传网站