[数位DP]Hdu 6148——Valley Number
来源:互联网 发布:三菱plcq系列编程手册 编辑:程序博客网 时间:2024/05/01 11:46
题目梗概
求1~n中满足题目要求的数的个数。
题目要求:不存在一段下降之后上升的类似山谷的连续位置。
解题思路
不难想到是数位DP。
预处理时
其中当
刷答案时注意贴着给出的数做,细节看代码(调了4个小时的血与泪啊)。
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=105,tt=1000000007;int f[maxn][15][2],n=100,t,l,pd,ans;char s[maxn];void work(){ for (int i=0;i<=9;i++) f[1][i][0]=1; for (int i=2;i<=n;i++) for (int j=0;j<=9;j++) for (int k=0;k<=9;k++){ if (j>k) f[i][j][1]=(f[i][j][1]+(f[i-1][k][0]+f[i-1][k][1])%tt)%tt; if (k==j) f[i][j][1]=(f[i][j][1]+f[i-1][k][1])%tt,f[i][j][0]=(f[i][j][0]+f[i-1][k][0])%tt; if (j<k) f[i][j][0]=(f[i][j][0]+f[i-1][k][0])%tt; }}int check(){ scanf("%s",s+1);l=strlen(s+1);pd=0;ans=0; if (l==1) return s[1]-48; for (int i=1;i<l;i++) for (int j=1;j<=9;j++) ans=(ans+f[i][j][0])%tt,ans=(ans+f[i][j][1])%tt; for (int i=1;i<l;i++){ for (int j=0;j<s[i]-48;j++)if ((!pd||j>=s[i-1]-48)&&(i!=1||j!=0)){ ans=(ans+f[l-i+1][j][0])%tt; if ((i==1)||(!pd&&j<=s[i-1]-48)) ans=(ans+f[l-i+1][j][1])%tt; } if ((i>1)&&s[i]>s[i-1]) pd=1; if ((i>1)&&s[i]<s[i-1]&&pd){pd=2;break;} } if (pd<2) for (int j=0;j<=s[l]-48;j++) if (!pd||j>=s[l-1]-48) ans=(ans+1)%tt; return ans;}int main(){ freopen("exam.in","r",stdin); freopen("exam.out","w",stdout); work(); scanf("%d",&t); while (t--) printf("%d\n",check()); return 0;}
阅读全文
0 0
- [数位DP]Hdu 6148——Valley Number
- 数位DP——HDU6148 Valley Number
- hdu 6148 Valley Numer 数位dp
- HDU 6148 Valley Numer [数位dp]
- hdu 6148 Valley Numer(数位DP)
- Hdu 6148 Valley Numer 数位DP
- hdu 6148 Valley Numer (数位dp)
- hdu 6148 Valley Numer (数位dp)
- HDU 6148 Valley Numer (数位dp)
- 【数位DP】HDU6148[Valley Number]题解
- HDU 6148 && 2017 百度之星复赛 1005 Valley Numer(数位dp)
- 2017百度之星复赛 hdu 6148 Valley Numer (数位dp)
- 数位DP——HDU 3652 B-number
- HDU 3652——B-number(数位DP)
- HDU——B-number(数位DP)
- hdu(3652)——B-number(数位dp)
- HDU 5898 odd-even number——数位dp
- hdu6148-Valley Numer(数位dp)
- Iput子系统模型探究--2(handler-->以evdev_handler为例)
- 2-4 求交错序列前n项和
- Swagger常用注解API介绍
- 用html制作一个简单的五环
- CodeForces
- [数位DP]Hdu 6148——Valley Number
- CodeVS1267 老鼠的旅行 解题报告【棋盘型DP】
- Mysql中的CONCAT、GROUP_CONCAT使用示例
- CSS弹性盒子模型Flex
- 图片读取格式
- JS小知识
- 解决火狐兼容性问题
- 面向对象基础知识(3)--对象生存周期
- 伪元素使用