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

长兴县网站建设市场营销图片高清

长兴县网站建设,市场营销图片高清,首页>新闻>正文 网站怎么做,电子商务网站设计与实现题目描述 给定一个长度为 NN 的数列,A1,A2,⋯ANA1​,A2​,⋯AN​,如果其中一段连续的子序列 Ai,Ai1,⋯AjAi​,Ai​1,⋯Aj​ ( i≤ji≤j ) 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K 倍区间。 你能求出数列中总共有多少个 KK 倍区间吗&a…

题目描述

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

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

输入描述

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

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

输出描述

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

输入输出样例

示例

输入

5 2
1
2
3
4
5

输出

6

 首先想到的是暴力for(for()),两个数组去求,先从第一个数开始,加到最后一个,再从第二个开始,加到最后一个。问题就是会超时。

 

这个算法利用的是前缀和的知识,每一项都加上前一项,直到最后一项,求出所有的前缀和

从i>0开始,

求出每一项加上前一项的前缀和,

求出次和模的余数,将余数作为数组的下标,求出所有余数数量

用到一个重要知识点:任何两个前缀区间的和对k取模的值相等,则由大的前缀区间减掉小的前缀区间所形成的区间的必定是K倍区间(在官网上看到的题解,感觉思路很好)

任何两个前缀区间的个数\displaystyle C_{n}^{2}=(n*(n-1))/2,n=res[i];

注:1.不要忘记a[0],也要进行取模,res++;

2.类型要用 long long 

#include<bits/stdc++.h>
using namespace std;const int N=1e5+100;
typedef long long int ll;
int main()
{// 请在此输入您的代码int n,k;cin>>n>>k;ll a[N];ll sum=0;ll res[N]={0};for(int i=0;i<n;i++){cin>>a[i];if(i>0){a[i]+=a[i-1];//求和}res[a[i]%k]++;}sum=res[0];for(int i=0;i<k;i++){sum+=(res[i]*(res[i]-1))/2;}cout<<sum;return 0;
}

 

http://www.dtcms.com/wzjs/218464.html

相关文章:

  • 网站建设公司广东杭州排名优化软件
  • 电商网站开发费用seo排名快速优化
  • 网站在线问答怎么做高州新闻 头条 今天
  • 三室一厅二卫装修效果图seo网站推广软件 快排
  • 炫酷的电商网站设计推广什么软件可以长期赚钱
  • 诱导网站怎么做免费发广告的网站大全
  • 网页架构前端seo是什么
  • 做村易通网站站长要收费吗广东seo教程
  • 兰州网站优化自有品牌如何推广
  • 平面设计软件网站高端网站优化公司
  • 网站主要内容百度用户服务中心官网
  • 身份证被别人做网站备案五种关键词优化工具
  • 优化制造业布局seo外包公司是啥
  • 大连百度推广公司有几家seo教程 百度网盘
  • 爱网站关键词挖掘重庆森林电影完整版
  • 东凤网站建设百度经验手机版
  • 重庆旅游网站建设百度seo推广是什么
  • 临沂网站建设哪家最好成都专门做网络推广的公司
  • 网站建设讯息百度云网盘资源分享网站
  • 承德建设银行网站网站维护推广的方案
  • 免费学编程网站百度关键词搜索次数
  • 怎么用外网校内网站做英语安徽seo顾问服务
  • p2p网站建设方案策划书站长之家查询域名
  • 做钓鱼网站的公司知名的网络推广
  • 新干做网站seo优化代理
  • 2个小时学会网站建设巢湖网站制作
  • 象山做网站互联网推广销售好做吗
  • 微信公众号网站建设费百度权重优化软件
  • 日本三线和韩国三线的市场定位北京seo优化排名
  • 马家堡做网站的公司2022拉新推广赚钱的app