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. c++中单引号和双引号的区别

    在C++中单引号表示字符,双引号表示字符串. 例如 :在定义一个数组的时候string a [5]={"nihao","henhao","good&q ...

  2. Pytorch源码与运行原理浅析--网络篇(一)

    前言 申请的专栏开通了,刚好最近闲下来了,就打算开这个坑了hhhhh 第一篇就先讲一讲pytorch的运行机制好了... 记得当时刚刚接触的时候一直搞不明白,为什么自己只是定义了几个网络,就可以完整的 ...

  3. 禁用GPU版本TensorFlow,切换到CPU版本TensorFlow。

    #禁用gpu版本TensorFlow,因为CUDA号码从0开始,这里直接让CUDA使用-1的GPU,自然就无法使用gpu了. 代码前面加入: import osos.environ["CUD ...

  4. springboot整合mybatis完整示例, mapper注解方式和xml配置文件方式实现(我们要优雅地编程)

    一.注解方式 pom <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId& ...

  5. Java中的元注解

    注解为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用这些数据. 通过使用注解,我们可以将这些元数据保存在Java源代码中,并利用annotation API为自己的 ...

  6. 2018-8-10-VisualStudio-自定义外部命令

    title author date CreateTime categories VisualStudio 自定义外部命令 lindexi 2018-08-10 19:16:53 +0800 2018- ...

  7. 【30.01%】【hdu 3397】Sequence operation

    Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submissio ...

  8. h5&css3

    HTML5 HTML5简介 万维网的核心语言.标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改.作为新HTML语言,具有新的元素,属性和行为 它具有更大的技术集,允许更多样化和强 ...

  9. 理解Servlet

    题记:框架横行,似乎已经忘记JavaWeb最基础Servlet是如何工作的,这也是为什么要写这篇文章. Servlet是Java语言应用到Web的扩展技术,是运行在Web应用服务器上的Java程序.与 ...

  10. Javascript 防扒站,防止镜像网站

    自己没日没夜敲出来的站,稍微漂亮一点,被人看上了就难逃一扒,扒站是难免的,但不能让他轻轻松松就扒了: 前些天有个朋友做的官网被某不法网站镜像,严重影响到 SEO,当时的解决方法是通过屏蔽目标 IP 来 ...