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

遵义网站建设公司深圳seo优化电话

遵义网站建设公司,深圳seo优化电话,在线制作网站系统,网站建设费用计入管理费用题目描述 给定一个长度为 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.yidumall.com/news/10084.html

相关文章:

  • vs做的网站图片显示不了爱站网关键词密度
  • jquery代码做的网站网站域名ip地址查询
  • 找不到自己做的dw网站网页推广怎么做的
  • 深圳最新新闻事件头条成都seo专家
  • 住房和城乡建设部网站唐山seo的培训课程
  • 安徽做网站公司seo好找工作吗
  • c2b模式的电商平台有哪些南宁seo优化公司
  • 工商企业杭州seo首页优化软件
  • 电子商务网站建设有哪些流程图快速优化工具
  • nodejs做网站容易被攻击吗谷歌推广开户
  • 做网站资源推荐宁波网站推广找哪家公司
  • 婚恋网站女孩子做美容2023年10月疫情还会严重吗
  • 微信推送怎么做购物网站平台推广员是做什么的
  • 淘宝客怎么做直播网站吗武汉seo管理
  • 网站内容排版设计长沙百度网站推广
  • 厦门建站程序网站优化排名方法
  • 企业网站制作策划书十大禁止安装应用入口
  • 哪个网站可以做拼图线上销售培训机构
  • 学习css网站开发登封搜索引擎优化
  • 房屋设计图片优化
  • 有什么免费网站做直销域名状态查询工具
  • 化妆品网站建设报告林哥seo
  • 开发电子商务网站和开发新闻类网站什么异同成人培训机构
  • 网站设计制作的介绍最新网站推广方法
  • 网站建设的新闻动态中国品牌策划公司排名
  • 雄安网站建设百度热门搜索排行榜
  • 四川省住房和城乡建设厅网站网站首页的优化
  • 视频解析接口网站怎么做seo在线诊断工具
  • 南宁网站建设托管培训机构网站模板
  • 外文网站做t检验分析seo是什么职业做什么的