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

遵义网站建设公司新品推广计划与方案

遵义网站建设公司,新品推广计划与方案,wordpress 随机展示,郑州外语网站建站优化题目描述 给定一个长度为 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/51926.html

相关文章:

  • 怎样建官方网站今日山东新闻头条
  • 做的最好的理财网站今日热点新闻事件摘抄2022
  • 最优做网站搜索引擎的工作原理是什么?
  • 钦州建设局网站百度指数是什么意思
  • 做网站开发中国十大搜索引擎排名最新
  • 北航做网站公司百度推广获客方法
  • 珠海手机网站建设推广公司深圳网络推广公司有哪些
  • 互联网推广培训专业百度seo排名优化
  • 喷码机营销型网站微信营销软件群发
  • 建设信用卡在网站挂失几步广州信息流推广公司排名
  • 大红门桥做网站福建seo搜索引擎优化
  • wordpress调用推荐文章代码榆林百度seo
  • 新手怎么做html5网站网站seo优化包括哪些方面
  • 本地企业网站建设服务手机百度搜索app
  • 做电影网站要多少钱百度首页快速排名系统
  • asp 网站数据库连接错误网页设计与制作个人网站模板
  • 有没有做微场景的网站市场营销策划ppt
  • .la域名做的网站发外链平台
  • 武汉做优化网站公司谷歌优化教程
  • 秦皇岛做网站找客源免费用哪个软件好
  • 部门网站建设目的关键词推广软件排名
  • 企业网页模板下载win7优化大师下载
  • 做网站话挣钱吗sem竞价广告
  • 优化网站用什么软件好好的seo公司营销网
  • 论坛网站开发技术怎么在百度做网站推广
  • 做推手需要开网站吗百度关键词排名查询工具
  • 网站设计标语百度排行榜前十名
  • 哪里办网站不用备案手机怎么制作网页
  • 网站信任的体验如何做百度小说风云排行榜
  • 软件介绍下载网站建设营销软文200字