AcWing

Description

Sol

看了很久也没有完全理解直接$DP$的做法,然后发现了记搜的做法,觉得好棒!

这里是超棒的数位$DP$的记搜做法总结   看完仿佛就觉得自己入门了,但是就像文中写的,还是要多做题才能真正弄明白鸭,还要加油(ง •_•)ง

然后这里是同一个人的本题题解

Code

 #include<iostream>
#include<cstdio>
#include<cstring>
#define il inline
#define Rg register
#define go(i,a,b) for(i=a;i<=b;i++)
#define yes(i,a,b) for(i=a;i>=b;i++)
#define ll long long
#define mem(a,b) memset(a,-1,sizeof(a));
using namespace std;
il ll read()
{
ll x=,y=;char c=getchar();
while(c<''||c>''){if(c=='-')y=-;c=getchar();}
while(c>=''&&c<=''){x=(x<<)+(x<<)+c-'';c=getchar();}
return x*y;
}
int len,a[];
ll l,r,mod,f[][][];
il ll dfs(int pos,int sum,int ys,int limit)
{
if(pos>len)return (ys== && sum==mod);
if(!limit && f[pos][sum][ys]!=-)return f[pos][sum][ys];
ll as=;int maxs=limit?a[len-pos+]:,i;
go(i,,maxs)as+=dfs(pos+,sum+i,(1LL*ys*+i)%mod,i==maxs&&limit);
if(!limit)f[pos][sum][ys]=as;return as;
}
il ll sol(ll x)
{
len=;
while(x)a[++len]=x%,x/=;
ll as=;
go(mod,,*len){mem(f,);as+=dfs(,,,);}
return as;
}
int main()
{
l=read(),r=read();
printf("%lld\n",sol(r)-sol(l-));
return ;
}

最新文章

  1. some useful linux commands
  2. ae工具是一种特殊的命令
  3. js判断移动端是否安装某款app的多种方法
  4. linux常用命令:5网络命令
  5. c# 网络是否连接
  6. 省常中模拟 Test1 Day1
  7. Linux Server
  8. 【.NET】发送Email
  9. thinkjs 文件上传
  10. oracle学习笔记(一) oracle 体系结构简单介绍以及创建表空间和用户
  11. BootstrapTable的列排序怎么搞
  12. RocketMQ源码分析:(二)消息发送的三种方式
  13. mac sourcetree push分支选中所有tag的时候报错
  14. Spring Boot 1.5.10 发布:修复重要安全漏洞!!!
  15. 使用openpyxl实现excel文件的读取操作
  16. swiper4 一个页面多个轮播
  17. hdu1002-A + B Problem II-(java大数)
  18. swiper监听左滑还是右滑动
  19. keil5配置stm32库函数开发
  20. Mac下TensorFlow安装及环境搭建

热门文章

  1. PHP5.2 汉字json_encode
  2. Python基础:常用函数
  3. ansible api 通过python 方式调用
  4. 2018-10-20-WPF-通过位处理合并图片
  5. postman 中post方式提交数据
  6. 你看Http的 三次握手
  7. GPUtil是一个Python模块,使用nvidia-smi从NVIDA GPU获取GPU状态
  8. SuperSocket 中内置的 Flash/Silverlight 策略服务器
  9. SuperSocket获取所有连接上的 Session
  10. spring+mybatis 整合