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

大连网站建设哪家公司好陕西省私募基金协会

大连网站建设哪家公司好,陕西省私募基金协会,网店装修网站,个人艺术作品网站建设策划书题目:给定一个长度为 N 的数列,A1,A2,⋯AN​,如果其中一段连续的子序列 Ai,Ai1,⋯Aj( i≤j ) 之和是 K 的倍数,我们就称这个区间[i,j] 是 K 倍区间。 你能求出数列中总共有多少个 K 倍区间吗? 输入描述 第一行包含两…

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

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

输入描述

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

以下 N 行每行包含一个整数 AiAi​ ( 1≤Ai≤105 )

输出描述

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

输入输出样例

示例

输入

5 2
1
2
3
4
5

输出

6

解题思路+代码:(引用题解区 作者:风之理

解题思路

①前缀和:是每一个都是前面累加的(第一个是0+第一个) ②前缀和%K==》可以找到K=0,它一定是K的倍数 ③理解一个东西:任意两个前缀和的差值就是一个区间 ④而前缀和的差值为0,也一定是K的倍数 ⑤(3,3,3,3)---》任意两个组合:(n*(n-1)/2))

代码:

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);long N= sc.nextInt();long K= sc.nextInt();long sum=0;long [] n1=new long[100010];long [] n2=new  long[(int) K];for (int i = 0; i < N; i++) {long s= sc.nextInt();n1[i+1]=n1[i]+s;n2[(int)(n1[i+1]%K)]++;}sum +=n2[0];for (int i = 0; i < K; i++) {sum+=(n2[i]-1)*n2[i]/2;}System.out.println(sum);sc.close();}}

 个人想了这题很久,但是提交代码只能通过两个用例:

总结: 个人认为这题还是有点难,ai之后发现高效的解法需要用到前缀和与哈希表来计算,大家也可参考大佬的解题思路~

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

相关文章:

  • 怎么建立自己的公司网站北京标识设计制作
  • 巩义网站优化网页设计建设网站模板
  • 廊坊建设质量监督局网站建设电影播放网站
  • 网站风格模板php是怎么设计网站的
  • 公司内部网站模板重庆网站推广转化率
  • 网络会议网站2008iis7怎么搭建网站
  • 用dw制作个介绍家乡网站潍坊滨海开发区建设局网站
  • 网站asp重庆妇科医院排名前十名
  • 外国大气网站设计温州网页制作哪家好
  • 网站建设学生选课课程设计报告酷家乐软件下载电脑版
  • 云主机 网站 多个二级域名 seo优化群晖wordpress教程
  • 企业网站seo贵不贵宁波网站建设兼职
  • 做汽车精品的网站网站不收录排名会降吗
  • 开封做网站的公司重庆建设工程信息网官网入口30系统登入页面
  • 网站开发相关优惠条件h5个人网站模板下载
  • 怎么做分享网站品牌网站建设流程
  • 商城网站的运营西安微信网站建设公司
  • 温州建设集团招聘信息网站温州网站开发风格
  • 深圳网站设计小程序在internet上建设网站
  • 百度网站分析工具网站备案完成通知书
  • 做产品类的工作上什么网站好科郑州网站建设
  • 中国建设招标网 官方网站下载wordpress博客怎麽用
  • 网站 备案 注销 影响怎么做网站接口
  • 南岸集团网站建设建设淘宝网站需要多少钱
  • 张家港网页设计师培训kj6699的seo综合查询
  • 网站设计谈判免费查公司
  • 海外建站服务平台网站木马 代码
  • 网站建设的目标有哪些成都机房托管
  • 手机端网站模板下载云南大理拍婚纱照价格表
  • 长春住房和城乡建设部官方网站wordpress 流程插件