ZOJ 1569 Partial Sums

数字滤波器应用介绍 线性滤波器FIR ,会引起恒定延迟,通过补零的方式补偿非线性滤波器IIR,会引起频率相关的延迟,通过零相位延迟filtfilt补偿从信号中去除不需要的频谱时,通过滤波和补偿实现。如果需要去除的频率与采样率相差甚远,比如4kHz 与100Hz, 可通过 低通滤波->补偿->降采样–> 滤波 补偿 -->上采样还原的方法。*降采样前一定要先低通滤波为了防止混叠。 阅读详情

Partial Sums

Time Limit: 2 Seconds      Memory Limit: 65536 KB

Given a series of n numbers a1, a2, ..., an, the partial sum of the numbers is defined as the sum of ai, ai+1, ..., aj.

You are supposed to calculate how many partial sums of a given series of numbers could be divided evenly by a given number m.


Input

There are multiple test, each contains 2 lines.

The first line is 2 positive integers n (n <= 10000 ) and m (m <= 5000).

The second line contains n non-negative integers a1, a2, ..., an. Numbers are separated by one or several spaces.

The input is ended by EOF.

Output

One test each line - the number of partial sums which could be divided by m.

Sample Input

5 4
1 2 3 4 5
6 7
9 8 7 6 5 4


Sample Output

2
3

题目大意:从n个数中选一些,他们的和可以被m整除,求有多少组这样的数。

sum[i...j]=sum[1....j]-sum[1....i-1]

如果sum[i...j]%m==0  >>> (sum[1...j]-sum[1...i-1])%m==0 >>> sum[1...j]%m==sum[1...i-1]%m 

所以记录下从1...i的和存到sum数组中,若某个个sum[i]有K个,就有C(K,2)种结果


代码:

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m;
int a[10005];
int main()
{
    while(cin>>n>>m)
    {
        int ans=0,sum=0,x;
        memset(a,0,sizeof(a));
        for(int i=0; i<n; i++)
        {
            cin>>x;
            sum=(sum+x)%m;
            if(sum==0)
                ans++;
            a[sum]++;
        }
        for(int i=0; i<m; i++)
            if(a[i])
                ans+=a[i]*(a[i]-1)/2;
        cout<<ans<<endl;
    }
}



国科大学习资料--计算机视觉--期末考试解析 国科大学习资料–计算机视觉(胡占义)–期末考试解析 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 阅读详情

相关推荐

A股历史数据免费下载终极指南:4000+个股数据一键打包获取

本文提供了获取A股历史数据的完整免费方案,重点介绍了Tushare Pro、AkShare等开源金融数据API的使用方法。通过详细的Python脚本示例,指导读者如何自动化批量抓取、清洗、存储4000多只个股的历史行情数据,并分享数据质量校验与性能优化技巧,助力量化研究与市场分析。

ooo22的博客 2235

zoj1569

其实计算机专业拼到最后拼的是数学,就像这道题。 这道题目如果就用普通的方法来做的话,复杂度会达到o(n^2),显然会超时,现在的目的是改进算法,使时间复杂度将到o(n),注意题目中有个很重要的条件:就是求和的数是相邻的,第一反应就是考虑求1----k项的和,然后对m取余,如果第i项的余数和第j项的余数相等,则从i到j的和就能被m整除,当然别忘了考虑0这个特殊的数。 根据组合公式,显然count

zzu-hust-madd 539

Altium Designer操作技巧(1)——原理图中如何批量替换元器件?

《AltiumDesigner批量替换元器件技巧分享》摘要:本文介绍了两种在AltiumDesigner中批量替换元器件的实用方法。方法一通过“查找相似对象”功能,可精准匹配并批量修改器件参数;方法二利用ActiveBOM功能,在BOM表中直观操作器件替换,推荐使用第二种方法可使BOM管理更高效。这些技巧能有效减少物料种类、降低贴装成本,特别适用于电阻电容等常用器件的批量替换。关注公众号获取更多电子设计技巧。

u012526819的博客 2582

ZOJ 1569 对于给定序列,问有多少子序列的和是m倍数

<br />题目连接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=569<br /> <br />题目的意思很明了,就不翻译了。。哥也是没有过四级的人啊。。。<br /> <br />这道题的数据量是10000,所以直接预处理+暴力的话是O(n^2)的,肯定会超时<br /> <br />所以程序还有待于优化。<br /> <br />注意到,题目只需要我们求出有多少个序列的和是m的倍数,而不需要知道具体这些序列是什么。<br /> 

bingshen的专栏 2415

别再手动盘点了!教你给微信小程序仓库系统加个‘扫码枪’:完整扫码入库与查询功能实现

本文详细介绍了如何为微信小程序仓库系统添加扫码入库与查询功能,实现零硬件成本的智能仓储管理。通过优化摄像头参数、增强动态识别算法和深度整合业务逻辑,提升扫码精度和效率,同时提供混合查询方案应对复杂场景。这套方案显著提升入库效率,降低错误率,适用于各类仓储管理需求。

weixin_30844577的博客 298

小白跑WRF第五天,安装WPS和静态地理数据

小白跑WRF第四天,安装WPS一、WPS简介二、下载和安装WPSV4.0第一步、进入Build_WRF文件夹第二步、下载WPSV4.0第三步、解压WPS安装包第四步、修改intmath.f(必须执行)第五步、安装WPS三、修改namelist.wps 一、WPS简介 二、下载和安装WPSV4.0 第一步、进入Build_WRF文件夹 cd Build_WRF 第二步、下载WPSV4.0 下载WPSV4.0的安装包有以下三种方式: 利用Linux命令下载。 进入网站https://www2.mmm.uca

weixin_42372313的博客 2万+

【ZOJ - 1569】【Partial Sums】

题目: Given a series of n numbers a1, a2, ..., an, the partial sum of the numbers is defined as the sum of ai, ai+1, ..., aj. You are supposed to calculate how many partial sums of a given series of nu...

哇哈哈哈的博客 346

Zemax操作--2(单透镜和双胶合透镜优化)

单透镜 要求 镜头数据里面的数量变化后要重新设计优化函数 设计 一、初始参数 按照要求输入波长、入瞳孔径、视场数据编辑器如图 物面--透镜前表面--透镜后表面--相面(镜头数据再插入一个面如图) 将2面曲率半径F数设置为10,zemax自动给出合适值 设置面2的边缘光线高度,zemax自动给出合适值 二、评价参数设置 将面1曲率半径设置为变量 再设置评价函数告诉zemax我们需要什么条件,评价函数默认即可 执行优化 双胶合透镜 要求 ...

lzy750750的博客 1万+

zoj 1569

给出n个数,求其中连续和能被m整除的个数。 普通做法,求出

学习之路 482

HWSD中国土壤数据库

T_PH_H2O: Real (酸碱度) T_CEC_CLAY: Real (粘性层土壤的阳离子交换能力);T_CEC_SOIL: Real (土壤的阳离子交换能力) T_BS: Real (基本饱和度);T_CACO3: Real (碳酸盐或石灰含量) T_CASO4: Real (硫酸盐含量);ADD_PROP: Real (土壤单元中与农业用途有关的特定土壤类型);T_USDA_TEX: Real (USDA土壤质地分类);T_REF_BULK: Real (土壤容重);

地球资源数据云的官方博客 4651

【OpenClaw企业级智能体实战】第04篇:OpenClaw成本优化实战——Token消耗降96%!claude-mem+OpenViking从入门到精通

OpenClaw作为企业级智能体框架,凭借强大的自动化能力成为企业数字化转型的热门工具,但原生机制导致的上下文冗余问题,让众多用户面临“Token消耗失控”的困境——单周账单数千元的案例屡见不鲜。本文基于阿里云实测数据与开源工具官方文档,先深度拆解OpenClaw成本黑洞的核心成因(记忆碎片化、Token指数级膨胀),再系统讲解两款核心优化工具(claude-mem单Agent记忆管理、OpenViking多Agent集群底座)的底层原理、算法架构与实现逻辑,提供从环境搭建、工具集成、参数调优到安全部署

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 703

Partial Sums ZOJ - 1569

Given a series of n numbers a1, a2, …, an, the partial sum of the numbers is defined as the sum of ai, ai+1, …, aj. You are supposed to calculate how many partial sums of a given series of numbers cou...

Alex 579

使用STM32H7点亮RGB屏幕

希望本文能对你有所帮助!RGB屏幕是一种具有红、绿、蓝三种颜色通道的显示设备,通过控制每个通道的亮度,可以显示出丰富多彩的图像和动画。要使用STM32H7控制RGB屏幕,我们需要连接适当的引脚,并编写适当的代码来控制每个颜色通道的亮度。在主循环中,我们先点亮红色通道,然后延迟一段时间,接着点亮绿色通道,再延迟一段时间,最后点亮蓝色通道,并再次延迟。需要注意的是,示例代码中的延迟循环使用了一个简单的计数器实现,但实际应用中可能需要更精确的延迟方式,例如使用定时器中断或操作系统提供的延迟函数。

QoyOle的博客 924

zoj1569 Partial Sums

sum[i...j] = a[i]+a[i+1]+...+a[j] = sum[1...j]-sum[1...i-1],1 =分两种情况:1、i=1时,sum[1...j]%m==0,cnt++;2、i>1时,sum[i...j]%m==0 (sum[1...j]-sum[1...i-1])%m==0 sum[1...j]%m==sum[1...i-1]%m (令= k != 0)

fairylan的专栏 1113

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ZOJ-1569

有了题解之后code就很简单。。不该啊。。没有自己思考过程了,附上大神题解

xhldtc的专栏 669

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Partial Sums(CF-223B)

Problem Description You've got an array a, consisting of n integers. The array elements are indexed from 1 to n. Let's determine a two step operation like that: First we build by the array a an arr...

Alex_McAvoy的博客 472

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

CodeForces 223C Partial Sums 多次前缀和

Partial Sums 题解: 一个数列多次前缀和之后, 对于第i个数来说他的答案就是 for(int i = 1; i <= n; ++i){ for(int j = 1; j <= i; ++j){ b[i] = (b[i] + 1ll * a[j] * C(k-1+j-i,j-i)) % mod; ...

dengpangbu3703的博客 329

ACM: 小数转分数 toj 1336

小数化分数  描述 Ray 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想到一个问题,如何把一个循环小数化成分数呢? 请你写一个程序不但可以将普通小数化成最简分数,也可以把循环小数化成最简分数。 输入 第一行是一个整数N,表示有多少组数据。 每组数据只有一个纯小数,也就是整数部分为0。小数的位数不超过9位,循环部分用()括起来。 输出 对

smile_benson 577

hdu4193---Non-negative Partial Sums(单调队列 or 单调栈)

曾经使用了两年多的Vim,手册也翻过一遍。虽然现在不怎么用vim了,曾经的笔记还是贴出来,与喜欢vim的朋友分享。索 1. 关于Vimvim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效。 如果是初学vi,运行一下vimtutor是个聪明的决定。 (如果你的系统环境不是中文,而你想使用中文的vimtutor

Alex 1020

ZOJ1569

n m a1 a2 a3 a4 a5 a6 a7 a8 ... S1 = a1 S2 = a1 + a2 S3 = a1 + a2 + a3 S4 = a1 + a2 + a3 + a4 S5 = a1 + a2 + a3 + a4 + a5 任何一段连续数和可用Sj - Si (i < j)求得 若Sj % m == Si % m,可以知道a[i] + a[i+1]...

weixin_30421525的博客 131

51Nod-1161-Partial Sums

ACM模版描述题解如果暴力解题是肯定不行的,这个需要算出每个 A[i] 对第 K 次操作的贡献,根据前几次操作的模拟结果可以得出,这是一个组合数,于是乎也就变成了一个如何快速求组合的问题了。对于这道题我也是一知半解,主要是组合数学学得有些差,求组合只会套模版,这就很尴尬了~~~哎呀,我要去看组合数学啦!最后,在这里,必须感谢 ITAK 大神的题解。代码#include <iostream> #inc

逐梦者 751

Partial Sums 51Nod - 1161

https://www.51nod.com/Challenge/Problem.html#!#problemId=1161     公式比较好推 纸上一画就有了 然后就是求组合数 智障啊 就想着c(n,k)中n可能大于等于mod 然后想怎么卢卡斯 怎么分段。。 要求的组合数为c(k+i-2,i-1) 有c(n+1,k+1)=(n+1)*c(n,k)/(k+1) 直接循环暴力求就行   ...

sunyutian1998的博客 203

CF359D:Pair of Numbers(数论)

reference:WannaflyUnion Wechat D. Pair of Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output ...

weixin_34082854的博客 321

【51nod 1161】 Partial Sums (组合数学)

题目来源: CodeForces 基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 给出一个数组A,经过一次处理,生成一个数组S,数组S中的每个值相当于数组A的累加,比如:A = {1 3 5 6} =&gt; S = {1 4 9 15}。如果对生成的数组S再进行一次累加操作,{1 4 9 15} =&gt; {1 5 14 29},现在给出数组A,问进行...

Coldfresh的博客 466

ACM: 数论题 toj 1721

Partial Sums 描述   Given a series of n numbers a1, a2, ..., an, the partial sum of the numbers is defined as the sum of ai, ai+1, ..., aj. You are supposed to calculate how many partial sums of a g

smile_benson 351
上一篇: HDU 3047 Zjnu Stadium(带权并查集,路径压缩)
下一篇: ZOJ 3690 Choosing number(矩阵快速幂)
tauriel
博客等级 码龄12年 11粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值