Vijos 1090题:连续数之和
发布日期:2021-09-23 21:27:30
浏览次数:4
分类:技术文章
本文共 717 字,大约阅读时间需要 2 分钟。
描述
有n个正整数排成一行。你的目的是要从中取出一个或连续的若干个数,使它们的和能够被k整除。
例如,有6个正整数,它们依次为1、2、6、3、7、4。若k=3,则你可以取出1、2、6,或者2、6、3、7,也可以仅仅取出一个6或者3使你所取的数之和能被3整除。当然,满足要求的取法不止以上这4种。事实上,一共有7种取法满足要求。 给定n和k,以及这n个数。你的任务就是确定,从这n个数中取出其中一个数或者若干连续的数使它们的和能被k整除有多少方法。 由于取法可能很多,因此你只需要输出它mod 1234567的值即可。格式
输入格式
第一行有两个正整数,分别代表n和k。输入数据保证有n<=500 000,k<=100 000。
以下n行每行一个正整数。这些正整数保证都不大于10 000。输出格式
一个正整数。它应该是你的答案mod 1234567的结果。
样例1
样例输入1
6 3126374
样例输出1
7
限制
各个测试点1s
#includeusing namespace std;int a[100001];int main(){ std::ios::sync_with_stdio(false); int n, k, ans = 0, x, y = 0; cin >> n >> k; for (int i = 0;i < n;i++) { cin >> x; y = (x + y) % k; ans += a[y]; if (y == 0)ans++; ans %= 1234567; a[y]++; } cout << ans << endl; return 0;}
转载地址:https://blog.csdn.net/bodhiye/article/details/70846784 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月22日 12时40分35秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Docker:基础知识
2019-04-29
mysql知识总结
2019-04-29
C#连接ACCESS
2019-04-29
linux安装VMtools
2019-04-29
移动硬盘插入win10检测到却不显示盘符解决方法
2019-04-29
怎么查看本机S/N序列号和BIOS版本
2019-04-29
ThinkPad X1 Carbon安装win7.
2019-04-29
EasyOrtho卫星影像处理软件
2019-04-29
TerraMaster RAID Manager
2019-04-29
vmware vcenter converter(物理机转换虚拟机)
2019-04-29
解决Surface 网卡不识别
2019-04-29
回收站东西太多删不掉
2019-04-29
超融合与云计算的区别是什么?
2019-04-29
SuperSocket
2019-04-29
修改ant design的tooltip组件中的字体颜色(2分钟解决战斗)
2019-04-29
参观邓小平故居有感
2019-04-29
教你如何查看linux版本
2019-04-29
Linux下利用crontab执行任务
2019-04-29
RedHat Linux下注册Apache为系统服务
2019-04-29