luogu 3413 SAC#1 - 萌数
题目描述
辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌!
好在在他眼里,并不是所有数都是萌的。只有满足“存在长度至少为2的回文子串”的数是萌的——也就是说,101是萌的,因为101本身就是一个回文数;110是萌的,因为包含回文子串11;但是102不是萌的,1201也不是萌的。
现在SOL想知道从l到r的所有整数中有多少个萌数。
由于答案可能很大,所以只需要输出答案对1000000007(10^9+7)的余数。
输入输出格式
输入格式:
输入包含仅1行,包含两个整数:l、r。
输出格式:
输出仅1行,包含一个整数,即为答案。
输入输出样例
1 100
10
100 1000
253
说明
记n为r在10进制下的位数。
对于10%的数据,n <= 3。
对于30%的数据,n <= 6。
对于60%的数据,n <= 9。
对于全部的数据,n <= 1000,l < r。
用记忆化搜索实现数位dp
如果没有限位就可以记忆化
有限位就要往下递归
还要考虑前导0
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<cmath> 6 using namespace std; 7 typedef long long lol; 8 lol f[1001][12][12][2],Mod=1e9+7; 9 char s1[1001],s2[1001],s[1001]; 10 lol dfs(int pos,int pre,int bef,int t,int k,int flag) 11 {int i; 12 if (pos<0) return t; 13 if (!flag&&f[pos][pre+1][bef+1][t]!=-1) return f[pos][pre+1][bef+1][t]; 14 int end; 15 lol cnt=0; 16 if (flag) end=s[pos]-'0'; 17 else end=9; 18 for (i=0;i<=end;i++) 19 { 20 cnt+=dfs(pos-1,i,k?pre:-1,t||((i==pre)&&k)||((i==bef)&&k),k||(i!=0),flag&&(i==end)); 21 cnt%=Mod; 22 } 23 if (!flag&&k&&bef!=-1) f[pos][pre+1][bef+1][t]=cnt; 24 return cnt; 25 } 26 lol solve(char ch[]) 27 {int i; 28 memset(f,-1,sizeof(f)); 29 int len=strlen(ch); 30 for (i=0;i<len;i++) 31 s[len-i-1]=ch[i]; 32 while (s[len-1]=='0') len--; 33 return dfs(len-1,-1,-1,0,0,1); 34 } 35 int main() 36 {int i; 37 cin>>s1>>s2; 38 int len=strlen(s1); 39 s1[len-1]--; 40 for (i=len-1;i>=0;i--) 41 if (s1[i]<'0') s1[i]+=10,s1[i-1]--; 42 printf("%lld\n",(solve(s2)-solve(s1)+Mod)%Mod); 43 }
转载于:https://www.cnblogs.com/Y-E-T-I/p/8466813.html
luogu 3413 SAC#1 - 萌数相关推荐
- 洛谷P3413 SAC#1 - 萌数(数位dp)
题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌! 好在在他眼里,并不是所有数都是萌的.只有满足"存在长度至少为2的回文子串"的数是萌的--也就是说,101是萌的,因为101本 ...
- SAC#1 - 萌数
题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:http://191.101.11.174/mgzd . 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数 ...
- 洛谷 P3413 SAC#1 - 萌数(数位dp)
题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:http://191.101.11.174/mgzd . 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数 ...
- 洛谷P3413 SAC#1 - 萌数【数位DP】
时空限制 1000ms / 128MB 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌! 好在在他眼里,并不是所有数都是萌的.只有满足"存在长度至少为2的回文子串"的数是萌的 ...
- [LUOGU3413] SAC#1 - 萌数
题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:http://191.101.11.174/mgzd . 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数 ...
- 洛谷 3413 萌数
Description 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌! 好在在他眼里,并不是所有数都是萌的.只有满足"存在长度至少为2的回文子串"的数是萌的--也就是说,101是萌的 ...
- [Luogu] P3413 萌数
题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:已和谐 . 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌! 好在在他眼里,并不是所有数都是萌的.只 ...
- luogu3413 萌数
https://www.luogu.org/problem/P3413 数位dp题 直接算萌数不容易,但直接算非萌数比较容易 一个非萌数只要满足对于任意一位$i$,$num[i]!=num[i+1] ...
- 【luogu P3931 SAC E#1 - 一道难题 Tree】 题解
题目链接:https://www.luogu.org/problemnew/show/P3931 肉眼观察题目感觉可以跑最大流. 证明是如果拆断一棵树,可以最小割,最小割等于最大流. 注意: 图是无向 ...
最新文章
- 一致性哈希(Consistent Hashing)
- 在动作观察,运动想象和站立和坐姿执行过程中解码脑电节律
- 网络编程—网络基础概览、socket,TCP/UDP协议
- 前后端交互中,返回前端的自定义响应数据结构
- [Golang]slice值传递存在的问题
- ASP.NET MVC载入页面常用方法
- vb2010 连接mysql,VB连接数据库方式汇总
- Windows消息钩子[键盘监控]
- android pc投屏,如何解决乐播投屏中投屏失败的问题【乐播投屏】
- Utils 前端随机生成id,中文姓名
- sublime主题选择
- Word 标题后自动添加分页符、分节符显示与查看
- 【RegNet】《Designing Network Design Spaces》
- Web前端--HTML+CSS+JavaScript响应式网络科技网页设计
- Netlink的简介及使用方法
- win7安装高版本的node解决办法
- localbus总线
- AutoCAD.Net开发问题之:层表事件的响应(续)
- html怎样给名片加边框,添加边框和底纹
- 【问题解决】ESP32报错:make: xtensa-esp32-elf-gcc: Command not found