Nowcoder84D

传送门

很有趣的进制转换题!

如果x满足题意,那么x+k-1一定能符合要求!

因为k-1用k进制表示就是1,-1,1+(-1)=0所以数位之和不变!

用map维护一下前缀和。就好了。

#include <iostream>
#include <map>
using namespace std;
typedef long long LL;
const int N=100002;
LL k,b,n;
LL a[N],s[N],s2[N];
map<LL,LL> mp,mp2;
int main() {
scanf("%lld%lld%lld",&k,&b,&n);
for(int i=1;i<=n;i++) {
scanf("%lld",&a[i]);
s2[i]=s2[i-1]+a[i]; mp2[s2[i]]++;
a[i]%=(k-1); s[i]=s[i-1]+a[i]; s[i]%=(k-1);
mp[s[i]] ++;
} mp[0]++; mp2[0]++;
LL ret=0,zero=0;
for(int i=0;i<=n;i++) {
mp2[s2[i]] --;
zero += mp2[s2[i]];
}
for(int i=0;i<=n;i++){
mp[s[i]] --;
ret += mp[(s[i]+b)%(k-1)];
} if (b==0) {
ret = zero;
}
if (b==k-1) {
ret -= zero;
}
cout<<ret<<endl;
}

最新文章

  1. linux 安装python-setuptools
  2. PythonS12-day4学习笔记
  3. 基于OpenCV 的iOS开发
  4. HDU 4833 Best Financing (DP)
  5. java集合-HashTable
  6. java list
  7. Java项目导出war包 security alert:integrity check error”
  8. Windows 8 图标前面的勾选
  9. Interview Check If n Is A Perfect Square
  10. mysql避免插入重复数据
  11. C++ 构造函数讲解
  12. java 小结2 多态问题和容器介绍
  13. java 静态文件使用注解
  14. ASP.NET Core:使用Dapper和SwaggerUI来丰富你的系统框架
  15. C语言指针作业总结
  16. linux系统服务详解
  17. winform自定义控件开发
  18. 如何判断一个js对象是否是Array
  19. linux服务器账号密码正确无法登录
  20. Objekt Orientierte Programmierung C++

热门文章

  1. windbg分析运行在64位环境下的32位程序的dump
  2. TCP模型及其重点协议总结
  3. Android进阶(八)Can&#39;t create handler inside thread that has not called Looper.prepare()
  4. 2015年iOS开发工程师前景分析
  5. c#一些特殊语法
  6. 【shell脚本练习】批量添加用户和设置密码
  7. AngularJS进阶(三十六)AngularJS项目开发技巧之利用Service&amp;Promise&amp;Resolve解决图片预加载问题(后记)
  8. JAVA之旅(五)——this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块
  9. mysql语法、特殊符号及正则表达式的使用
  10. LeetCode之“树”:Binary Tree Level Order Traversal &amp;&amp; Binary Tree Level Order Traversal II