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

拼多多2021笔试真题集 -- 3. 多多的求和计算

多多的求和计算
多多路上从左到右有N棵树(编号1~N),其中第i个颗树有和谐值Ai。
多多鸡认为,如果一段连续的树,它们的和谐值之和可以被M整除,那么这个区间整体看起来就是和谐的。
现在多多鸡想请你帮忙计算一下,满足和谐条件的区间的数量。
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M
输入描述:
第一行,有2个整数N和M,表示树的数量以及计算和谐值的参数。
( 1 <= N <= 100,000, 1 <= M <= 100 )
第二行,有N个整数Ai, 分别表示第i个颗树的和谐值。
( 0 <= Ai <= 1,000,000,000 )
输出描述:
共1行,每行1个整数,表示满足整体是和谐的区间的数量。
示例1
输入例子:
5 2
1 2 3 4 5
输出例子:
6
例子说明:
长度为1: [2], [4]
长度为2: 无
长度为3: [1,2,3], [3,4,5]
长度为4: [1,2,3,4], [2,3,4,5]
长度为5: 无
共6个区间的和谐值之和可以被2整除。

题解

前缀和取模计数,后面的前缀和减去前面的前缀和得到这个区间的和。

AC代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e5+5;
int n,m;
int arr[maxn];
int sum[105];
int main() 
{cin>>n>>m;for(int i=0;i<n;i++){cin>>arr[i];arr[i] %= m;}memset(sum,0,sizeof(sum));sum[0] = 1;int total = 0;ll res = 0;for(int i=0;i<n;i++){total += arr[i];total %= m;for(int j=0;j<=m;j++){if((total+m-j)%m==0){res += (ll)sum[j];}}sum[total] += 1;}cout<<res<<endl;return 0;
}
http://www.lryc.cn/news/37245.html

相关文章:

  • DP算法:动态规划算法
  • 一三四——一六七
  • day29_JS
  • 【HTTP协议与Web服务器】
  • Idea+maven+spring-cloud项目搭建系列--12 整合grpc
  • Revit开洞问题:结构专业开洞口剖面显示及一键开洞
  • 0107连通分量-无向图-数据结构和算法(Java)
  • [学习笔记]黑马程序员python教程
  • 如何配置用于构建 FastReport Online Designer 的 API ?
  • 【嵌入式Linux内核驱动】02_字符设备驱动
  • 【零散整理】
  • RocketMQ重复消费的症状以及解决方案
  • 数字化时代,企业的商业模式建设
  • 项目实战典型案例23——-注册上nacos上的部分服务总是出现频繁掉线的情况
  • 玩转金山文档 3分钟让你的文档智能化
  • 安装了nodejs怎么安装nvm
  • java安全编码规范考试
  • 表格检测识别技术的发展历程
  • 设计UI - Adobe xd对象介绍
  • 优思学院|精益生产中的“单件流”真的能够做到吗?
  • 移除元素问题解决方法------LeetCode-OJ题
  • JavaScript学习笔记(1.0)
  • FCN网络介绍
  • Idea+maven+spring-cloud项目搭建系列--11 整合dubbo
  • 2023年上半年北京杭州/广州深圳软考中/高级报名入口
  • jupyter notebook配置和使用
  • 【C++】通过stack、queue、deque理解适配器模式
  • JavaScript 高级实例集合
  • Flutter(五)容器类组件
  • 实现满屏品字布局