题目背景

本题由世界上最蒟蒻最辣鸡最撒比的SOL提供。

寂月城网站是完美信息教室的官网。地址:http://191.101.11.174/mgzd 。

题目描述

辣鸡蒟蒻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。


随便写写

f[i][j][k][0/1],决策到第i位,上一位的数字是j,上上位的数字是k,是否曾经出现过回文串, 的总数。

然后就记忆化搜索一下,记得判断前一位和前前一位是否合法...


#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define int  long long
inline int read() {int res=0;char ch=getchar();while(!isdigit(ch)) ch=getchar();while(isdigit(ch)) res=(res<<3)+(res<<1)+(ch^48), ch=getchar();return res;
}
#define reg register
#define mod 1000000007
int l, r;int f[1005][10][10][2];
int wei[1005], cnt;inline int dp(int pos, int lst1, int lst2, bool hav, bool flag, bool fir, bool sec)
{                                                 //是否有限制 if (pos == 0) return hav;if (!fir and !sec and !flag and f[pos][lst1][lst2][hav] != -1) return f[pos][lst1][lst2][hav] % mod;int lim = flag ? wei[pos] : 9;int ans = 0;for (reg int i = 0 ; i <= lim ; i ++){if (i == lst1 and !fir) ans = (ans + dp(pos - 1, i, lst1, 1, flag && i == wei[pos], fir && i == 0, sec && lst1 == 0)) % mod;else if (i == lst2 and !fir and !sec) ans = (ans + dp(pos - 1, i, lst1, 1, flag && i == wei[pos], fir && i == 0, sec && lst1 == 0)) % mod;else ans = (ans + dp(pos-1, i, lst1, hav, flag && i == wei[pos], fir && i == 0, sec && lst1 == 0)) % mod;}if (!flag and !fir and !sec) f[pos][lst1][lst2][hav] = ans % mod;return ans % mod;
}signed main()
{memset(f, -1, sizeof f);int res1 = 0, res2 = 0;string a;cin >> a;cnt = 0;for (reg int i = a.length() - 1 ; i >= 0 ; i --) wei[++cnt] = a[i] - '0';int k = 1;if (wei[1]) wei[1]--;else {while(wei[k] == 0) wei[k] = 9, k++; wei[k]--;}res1 = dp(cnt, 0, 0, 0, 1, 1, 1) % mod;cnt = 0;cin >> a;for (reg int i = a.length() - 1 ; i >= 0 ; i --) wei[++cnt] = a[i] - '0';res2 = dp(cnt, 0, 0, 0, 1, 1, 1) % mod;printf("%lld\n", (res2 - res1 + mod) % mod);return 0;
}

转载于:https://www.cnblogs.com/BriMon/p/9476945.html

[LUOGU3413] SAC#1 - 萌数相关推荐

  1. 洛谷P3413 SAC#1 - 萌数(数位dp)

    题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌! 好在在他眼里,并不是所有数都是萌的.只有满足"存在长度至少为2的回文子串"的数是萌的--也就是说,101是萌的,因为101本 ...

  2. SAC#1 - 萌数

    题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:http://191.101.11.174/mgzd . 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数 ...

  3. luogu 3413 SAC#1 - 萌数

    题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌! 好在在他眼里,并不是所有数都是萌的.只有满足"存在长度至少为2的回文子串"的数是萌的--也就是说,101是萌的,因为101本 ...

  4. 洛谷 P3413 SAC#1 - 萌数(数位dp)

    题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:http://191.101.11.174/mgzd . 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数 ...

  5. 洛谷P3413 SAC#1 - 萌数【数位DP】

    时空限制 1000ms / 128MB 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌! 好在在他眼里,并不是所有数都是萌的.只有满足"存在长度至少为2的回文子串"的数是萌的 ...

  6. luogu3413 萌数

    https://www.luogu.org/problem/P3413 数位dp题 直接算萌数不容易,但直接算非萌数比较容易 一个非萌数只要满足对于任意一位$i$,$num[i]!=num[i+1] ...

  7. 洛谷 3413 萌数

    Description 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌! 好在在他眼里,并不是所有数都是萌的.只有满足"存在长度至少为2的回文子串"的数是萌的--也就是说,101是萌的 ...

  8. [Luogu] P3413 萌数

    题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:已和谐 . 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌! 好在在他眼里,并不是所有数都是萌的.只 ...

  9. 数位dp 的简单入门

    时间紧张,就不讲那么详细了. 之前一直被深搜代码误解,以为数位dp 其实就是记忆化深搜...(虽说爆搜确实很舒服而且还好想) 但是后来发现数位dp 的标准格式其实是 预处理 + dp ...... 数 ...

最新文章

  1. python之进程和线程2
  2. 【easy】257. Binary Tree Paths 二叉树找到所有路径
  3. 0x0000050蓝屏srvsys_win7电脑蓝屏,显示的应该是srv.sys造成的,是什么情况?应该如何处理?...
  4. 乐高ev3 读取外部数据_数据就是新乐高
  5. 算法6:只有五行的Floyd最短路算法
  6. jq 和java 多张图片_jQuery多个事件触发相同的功能
  7. 华为算法精英赛(题3:概率计算)
  8. Qt学习之路系列教程目录
  9. 奇趣携Red Bend推空中下载软件控件管理
  10. SQL特殊comment语法
  11. 一款捕鱼手游分析 —— 实现无限购买金币
  12. Android之简单本地音乐播放器
  13. Android 面经【持续更新.....】
  14. JS的报错处理(throw、try、catch)
  15. Redis五大数据结构的类型的使用
  16. FIR数字滤波器设计与软件实现
  17. Python中除法取整以及求余数(模)的方式
  18. html长方形代码_Graphics绘图,画矩形,长方形(入门级)
  19. ArcGis之椭球面积计算工具
  20. 关于CPU序列号的问题,以及如何获取×64下CPU的ProcessorID

热门文章

  1. 初探 iOS8 中的 Size Class
  2. chardet判断中文编码
  3. MiniUI快速入门教程(一)下载安装
  4. 一个人的寂寞,一个人的精彩
  5. N/A,NG的全称是什么?
  6. 婺源石城、长溪与理坑秋行散记
  7. VNC远程控制树莓派以及VNC使用教程
  8. html仿腾讯公益页面代码 简书,腾讯公益H5:刷屏传播,我们愿用善意陪同表达...
  9. 猜1-100数字游戏
  10. C++常见崩溃(最近遇到)