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

北京做网站建设的公司排名wordpress页面自定义

北京做网站建设的公司排名,wordpress页面自定义,网页下载网站,wordpress获取文章作者id题目描述 给定一个长度为 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.yayakq.cn/news/71567/

相关文章:

  • 猪八戒里面做网站骗子很多网站制作交易流程
  • 建设网站的企业公司公司建站
  • 设计师品牌 网站python前端开发需要学哪些东西
  • 网页设计的网站配色方案wordpress中文伪原创
  • 公众号兼职网站开发南京和筑建设有限公司网站
  • 宁波网站制作公司费用价格全屏网站源码
  • 扁平化设计网站 源码制作软件的公司叫什么
  • 九江做网站大概多少钱山东官方网站建设
  • 网站后台地址忘记了衙门口网站建设
  • 做任务的网站app开发做网站
  • 企业网站图片渐变效果怎么做云主机系统
  • 上哪里建设个人网站网站设计技能培训
  • uo建设网站中国建设银行甘肃省分行官网站
  • 网站建设截图什么是门户网
  • 网站建设无法访问网站百度搜不到WordPress文章
  • 上海集团网站制作东莞网络建设推广
  • 门户网站建设研究绍兴网站建设专业的公司4000-262-
  • 金华建站价格赚钱游戏一天500
  • 怎样在网站图片上做店铺广告黑果云免费虚拟主机
  • 网站开发人员的行业分析合肥学校网站建设
  • xampp wordpress新网站上线 怎么做seo
  • 泉州网站网站建设怎样更新网站快照
  • 网站建设与管理专业好吗暖色网站
  • 网站后台上传文章为什么不显示做最好的在线中文绅士本子阅读网站
  • 做移门图的 网站有哪些网站制作公司 沧州
  • 用什么程序做网站好wordpress文章点击量
  • 网站建设模板哪里下载夜晚直播
  • 民治网站建设做网站设计要多少钱
  • 网站开发主题中文 域名的网站
  • h5网站模板开发No酒类网站建设