博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nowcoder84D
阅读量:6190 次
发布时间:2019-06-21

本文共 857 字,大约阅读时间需要 2 分钟。

Nowcoder84D

很有趣的进制转换题!

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

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

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

#include 
#include
using namespace std;typedef long long LL;const int N=100002;LL k,b,n;LL a[N],s[N],s2[N];map
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<
<

转载于:https://www.cnblogs.com/RUSH-D-CAT/p/8974217.html

你可能感兴趣的文章
查找并删除 文件
查看>>
Android签名详解(debug和release)
查看>>
ORA-28001: the password has expired解决方法
查看>>
hdu4521 线段树+dp
查看>>
hdu 5868 Polya计数
查看>>
移动端开发
查看>>
C++实现计算器功能(包括计算含未知量的式子),输出后缀表达式
查看>>
报错:'utf-8' codec can't decode byte 0xb0 in position 0: invalid start byte
查看>>
泛型类型(Generic Type)
查看>>
PAT 1126 Eulerian Path[欧拉路][比较]
查看>>
BZOJ 3190: [JLOI2013]赛车
查看>>
mysql 定位字符串的位置
查看>>
服务器安装SSH服务:
查看>>
使用apidoc 生成Restful web Api文档——新手问题与解决方法
查看>>
JS的构造函数
查看>>
Quartz.net 的 FAQ
查看>>
CSS大小设置实例——盒子模型
查看>>
主成分分析(PCA)实现代码
查看>>
VisualGDB系列8:使用VS创建CMake Linux项目
查看>>
浅析基于微软SQL Server 2012 Parallel Data Warehouse的大数据解决方案
查看>>