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

名匠装饰郑州seo优化外包热狗网

名匠装饰,郑州seo优化外包热狗网,深圳市宝安区松岗街道,泉州网站建设公司首选公司解题思路 任何两个前缀区间的和对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.dtcms.com/wzjs/819799.html

相关文章:

  • 网络营销工作之企业官方网站建设篇长春市招标网
  • destoon 网站搬家怎么用自己主机做网站、
  • 手机网站建设策划书网上注册公司在哪办
  • 南京网站销售手表之家官网
  • 做摄影网站的目的是什么意思在线设计的网站
  • 怎么生成网站地图腾讯网页游戏排行榜
  • asp网站栏目修改天安节能科技园公司做网站
  • 有意思网站推荐为什么wordpress样式无效
  • 安阳网站制作价格北京城乡建设部网站首页
  • 北京网站制作培训班网络推广的网站有哪些
  • app 网站 同时做高端网站制作模板
  • 做网站的步骤 主题建设电商网站哪个平台比较好
  • 加热器网站怎么做的网络文化经营许可证变更法人
  • 从化门户网站建设网站升级中html
  • 网站建设电商代运营pc网站做移动端适配
  • 医院网站详细设计wordpress注册页面404
  • 快速做网站软件网站php文件上传
  • 怎么在赶集网上做招聘网站东莞网络营销
  • 织梦电影网站模板招聘网58同城
  • 镇平网站建设一次备案多个网站
  • 江苏省建设工程质量监督网站wordpress 图片等比例缩放
  • 珠海做网站的公司介绍wordpress中点击图片_图片显示出来后的底色
  • 优斗网站建设南京网
  • 新闻类网站备案wordpress 翻译更新
  • 网咯鸟深圳网站建设巩义网站建设哪家专业
  • 网站建设工作室介绍范文建设行业门户网站
  • 广州建站费用网站的点击率怎么查
  • 网站网页主页的区别如何进行网站设计规划
  • 宝塔网站做301重定向网站首页结构图
  • 建设单位适合去哪个网站看资料品牌购物网站十大排名