题目描述

辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌!

好在在他眼里,并不是所有数都是萌的。只有满足“存在长度至少为2的回文子串”的数是萌的——也就是说,101是萌的,因为101本身就是一个回文数;110是萌的,因为包含回文子串11;但是102不是萌的,1201也不是萌的。

现在SOL想知道从l到r的所有整数中有多少个萌数。

由于答案可能很大,所以只需要输出答案对1000000007(10^9+7)的余数。

输入输出格式

输入格式:

输入包含仅1行,包含两个整数:l、r。

输出格式:

输出仅1行,包含一个整数,即为答案。

输入输出样例

输入样例#1: 复制

1 100
输出样例#1: 复制

10
输入样例#2: 复制

100 1000
输出样例#2: 复制

253

说明

记n为r在10进制下的位数。

对于10%的数据,n <= 3。

对于30%的数据,n <= 6。

对于60%的数据,n <= 9。

对于全部的数据,n <= 1000,l < r。

题解

  我数位dp门都没入呢……

  别指望我能讲啥,自己看代码理解吧……

  只要注意一下下面代码里的$Pre$和$per$,一个表示前一个数,一个表示前两个数,因为回文数只会有$aba$和$aa$两种类型,然后只要注意特判一下当前位置是$1$的就行了

 //minamoto
#include<iostream>
#include<cstring>
#include<cstdio>
#define ll long long
using namespace std;
const int N=,mod=1e9+;
char s1[N],s2[N];ll dp[N][N][];int a[N];
ll dfs(int pos,int Pre,int per,int t,int k,int flag){
if(pos<=) return t;
if(!flag&&~dp[pos][Pre][t]) return dp[pos][Pre][t];
int end=flag?a[pos]:;ll res=;
for(int i=;i<=end;++i)
(res+=dfs(pos-,i,k?Pre:-,t||(i==Pre&&k)||(i==per&&k),k||i,flag&&(i==end)))%=mod;
if(!flag&&k&&~per) dp[pos][Pre][t]=res;
return res;
}
int solve(char *s){
int len=,slen=strlen(s+);
while(slen) a[++len]=s[slen--]-'';
memset(dp,-,sizeof(dp));
return dfs(len,-,-,,,);
}
int main(){
scanf("%s%s",s1+,s2+);
int len=strlen(s1+);
if(s1[len]!=) s1[len]-=;
else s1[len-]-=,s1[len]='';
printf("%d\n",(solve(s2)-solve(s1)+mod)%mod);
return ;
}

最新文章

  1. std::unique_lock&lt;std::mutex&gt; or std::lock_guard&lt;std::mutex&gt; C++11 区别
  2. jqGrid的autoencode参数设置为true在客户端可能引发的编码问题
  3. html+css创建提示框
  4. 【转载】 ionic 的 下拉刷新 与 上拉加载
  5. LightOj1007 - Mathematically Hard(欧拉函数)
  6. 详解MySQL---DDL语句、DML语句与DCL语句
  7. POJ 2186
  8. php环境下ckeditor和ckfinder的配置详解
  9. JavaScript--数组--sort比较器
  10. Swift版音乐播放器(简化版),swift音乐播放器
  11. 学习使用React Native的心得体会
  12. mysql 5.5中文乱码问题
  13. 基于Dubbo的压测调优实例
  14. 解决OracleOraDb10g_home1TNSListener服务无法启动
  15. 单列集合类的根接口Collection
  16. apply,all,bind的区别
  17. 【问题解决方案】ImportError: No module named &#39;openpyxl&#39;/‘xlrd’
  18. 关于常用mysql的文件
  19. 微服务化的大坑之一:当dubbo神器碰上共用注册中心和错误的暴露接口
  20. git特殊命令

热门文章

  1. MSDN 学习网站
  2. 本地dns服务器到底是什么?有没有精确的概念?
  3. 第15届浙江省赛 D Sequence Swapping(dp)
  4. UE4流关卡
  5. Java中弱引用、软引用、虚引用及强引用的区别
  6. Solaris11修改主机名
  7. C#理解泛型(源代码)及 default(T)
  8. Camera.Parameters 参数 &lt;转&gt;
  9. python的print字符串的输出
  10. Android中pull解析XML文件的简单使用