k倍区间:前缀和
[蓝桥杯][2017年第八届真题]k倍区间
题目描述
你能求出数列中总共有多少个K倍区间吗?
输入
以下N行每行包含一个整数Ai。(1 <= Ai <= 100000)
输出
样例输入
- 5 2
- 1
- 2
- 3
- 4
- 5
样例输出
- 6
题目描述:
定理1:n个数,从里边取两个,共有n*(n-1)/2种方法
定理2:前缀和的余数相同,那两个区间相减,中间的区间肯定是k的倍数,例如例题中12和12345,两个前缀和余数都为1,那么两个区间相减也就是345肯定是2的倍数
- /*
- * @Issue: https://www.dotcpp.com/oj/problem1882.html
- * @Author: 一届书生
- * @LastEditTime: 2020-02-19 11:11:15
- */
- #include<iostream>
- using namespace std;
- const int maxn = 100010;
- #define ll long long
- ll n, k,t, q[maxn],cnt[maxn],qian=0;
- int main() {
- scanf("%lld%lld", &n, &k);
- for (int i = 1; i <= n; i++) { //从1开始,方便后边处理
- scanf("%lld", &t);
- qian = (qian + t); //求输入数组前缀
- q[qian%k]++; //求前缀和的取余,并用桶排序、统计个数
- }
- ll flag = 0;
- for (int i = 0; i < k; i++) {
- if(q[i])
- flag += (q[i] * (q[i] - 1) / 2); //n个数,从里边取两个,共有n*(n-1)/2种方法
- }
- cout << flag +q[0]<< "\n"; // 为什么要加q[0]?
- // 因为我们前边漏掉了前i个数的和对k取模为0的情况
- //也就是漏掉了例题中123和1234的这两个情况。
- return 0;
- }
k倍区间:前缀和的更多相关文章
- k倍区间 前缀和【蓝桥杯2017 C/C++ B组】
标题: k倍区间 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍 ...
- [蓝桥杯2017初赛]k倍区间 前缀和
题目描述 给定一个长度为N的数列,A1, A2, ... AN. 如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间. ...
- k倍区间(解题报告)前缀和简单应用
测评地址 问题 1882: [蓝桥杯][2017年第八届真题]k倍区间 时间限制: 1Sec 内存限制: 128MB 提交: 351 解决: 78 题目描述 给定一个长度为N的数列,A1, A2, . ...
- 蓝桥杯试题 k倍区间(dp)
问题描述 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间. ...
- 第八届蓝桥杯省赛 K倍区间
问题描述 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间. ...
- 蓝桥杯-k倍区间
http://lx.lanqiao.cn/problem.page?gpid=T444 问题描述 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, .. ...
- 【题集】k倍区间(抽屉原理)
例1:http://lx.lanqiao.cn/problem.page?gpid=T444 蓝桥杯 问题描述 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, A ...
- 2017第八届蓝桥杯 K倍区间
标题: k倍区间 给定一个长度为N的数列,A1, A2, - AN,如果其中一段连续的子序列Ai, Ai+1, - Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间. ...
- k倍区间
看大佬的代码看了半天,终于算是懂了 标题: k倍区间 给定一个长度为N的数列,A1, A2, … AN,如果其中一段连续的子序列Ai, Ai+1, … Aj(i <= j)之和是K的倍数,我们就 ...
随机推荐
- autogen.sh脚本执行报错问题解决(针对DOMJudge平台搭建)
错误信息:./autogen.sh: 9: ./autogen.sh: aclocal: not found 解决办法: $ sudo apt-get install automake $ sudo ...
- 了解python wed 框架
随着人工智能发展,python这门编程语言也渐渐被人们熟知.至于python为什么能AL的时代脱颖而出可以看一下旁边的网址了解一下https://blog.csdn.net/lixingshi/art ...
- Kafka设计解析(五)Kafka性能测试方法及Benchmark报告
转载自 技术世界,原文链接 Kafka设计解析(五)- Kafka性能测试方法及Benchmark报告 摘要 本文主要介绍了如何利用Kafka自带的性能测试脚本及Kafka Manager测试Kafk ...
- “unauthorized: authentication required” -- openshift3.9 docker push 报错
1.docker tag mybank-tomcat:latest 172.30.25.185:5000/mybank-tomcat:latest 2.当往registrypush镜像的时候, doc ...
- STM32中用 stop 模式 配合低功耗模式下的自动唤醒(AWU) 能否实现FreeRTOS tickless 模式
已经实现 ,2018年11月17日11:56:42,具体 如下: 第一步 : 修改 void vPortSetupTimerInterrupt( void ) 函数 ,修改原来的 systick 定 ...
- mysql5.7.22 下载过程
进入官网www.mysql.com ,选择downloads: 选择 Community 再选择MySQL community server 选择5.7的版本,这个看自己选择,有问题看标题 选择5.7 ...
- JQuery中的事件委托
JQuery 中的事件委托 定义 事件委托就是利用冒泡的原理,把事件加到父级上,通过判断事件来源的子集,执行相应的操作,事件委托首先可以极大减少事件绑定次数,提高性能:其次可以让新元素的子元素也可以拥 ...
- 使用canvas通过js制作一个小型英雄抓怪兽的2D小游戏
首先,这是一个HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- C语言数组截取常见问题
这是一段数组截取的代码,函数功能是检查后面的'*'的数量,若多于指定输入数,则把多余的'*'删除 void fun( char *a,int n ) { char *p = a; while(*p) ...
- go基础1:Hello world与变量声明
一.go语言版hello world package main # 指明文件属于main包 main包使用后来定义一个独立的可执行程序,而不是库main包中的main函数是特殊的,不管在什么程序中,m ...