题目描述

由于科协里最近真的很流行数字游戏,某人又命名了一种取模数,这种数字必须满足各位数字之和 modN 为 000。现在大家又要玩游戏了,指定一个整数闭区间 [a,b][a,b][a,b],问这个区间内有多少个取模数。

枚举每一位,记录每一次枚举%n的余数,当枚举完时,如果余数是0,就+1,否则+0.

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstdlib>
#include <cstring>
#define in(a) a=read()
#define REP(i,k,n) for(int i=k;i<=n;i++)
using namespace std;
inline int read(){
int x=,f=;
char ch=getchar();
for(;!isdigit(ch);ch=getchar())
if(ch=='-')
f=-;
for(;isdigit(ch);ch=getchar())
x=x*+ch-'';
return x*f;
}
int a,b,n,digit[],dp[][],ind;
inline int dfs(int pos,int state,bool flag){
if(!pos) return state==;
if(!flag && dp[pos][state]!=-) return dp[pos][state];
int up,ans=;
if(flag) up=digit[pos];
else up=;
REP(i,,up)
ans+=dfs(pos-,(state+i)%n,flag && i==digit[pos]);
if(!flag) dp[pos][state]=ans;
return ans;
}
inline int solve(int x){
ind=;
while(x){
digit[++ind]=x%;
x/=;
}
digit[ind+]=-;
return dfs(ind,,);
}
int main(){
while(scanf("%d%d%d",&a,&b,&n)!=EOF){
memset(dp,-,sizeof(dp));
printf("%d\n",solve(b)-solve(a-));
}
}

最新文章

  1. AxureRP8实战手册(基础31-40)
  2. CMFCPropertyGridProperty SetValue 出错处理
  3. 搭建dns域名服务器过程
  4. linux下备份mysql命令
  5. Nginx+Django+Uwsgi+php
  6. nginx日志切割
  7. LNMP安装了哪些软件?安装目录在哪?
  8. SQL Server调优系列基础篇 - 并行运算总结(一)
  9. Shell continue循环
  10. 产生n bit所有可能的序列
  11. Appium Android Bootstrap源码分析之控件AndroidElement
  12. zoom:1的作用
  13. 微信小程序的登陆流程详解
  14. 1 Spring Cloud Eureka服务治理(下)
  15. [Ubuntu] 运行.AppImage格式文件
  16. 批处理判断是BIOS还是UEFI启动
  17. zepto 事件分析4(事件队列)
  18. Eclipse安装fatjar(不用自己下载fatjar包)
  19. UVA11468 Substring
  20. homewor

热门文章

  1. 87.在ModelSim中添加Xilinx ISE仿真库
  2. Linux时间子系统之七:定时器的应用--msleep(),hrtimer_nanosleep()【转】
  3. aarch64_g3
  4. ansible批量修改linux服务器密码的playbook
  5. Python2和Python3同时安装到Windows
  6. WCF - Autofac IOC
  7. java容器---Comparable &amp; Comparator
  8. ROS数据可视化工具Rviz和三维物理引擎机器人仿真工具V-rep Morse Gazebo Webots USARSimRos等概述
  9. plsql中做计划任务
  10. MIT6.006Lec02:DocumentDistance