基本的数位dp模板

#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
typedef long long ll;
ll n,dp[110][10][2];
ll mod=1000000007;
int digit[110];
char s[110];
ll dfs(int pos,int pre,int up,int lead,int limit){if(pos<=0)return !lead;if(!limit&&!lead&&dp[pos][pre][up]!=-1)return dp[pos][pre][up];ll ans=0;int end=limit?digit[pos]:9;for(int i=0;i<=end;++i){if(up&&i<pre)continue;ans=(ans+dfs(pos-1,i,up||(i>pre&&!lead),lead&&!i,limit&&i==end))%mod;}if(!limit&&!lead)dp[pos][pre][up]=ans;return ans;
}
void solve(ll x){int cnt=0;for(int i=x-1;i>=0;--i){digit[++cnt]=s[i]-'0';}digit[cnt+1]=0;
}
int main(){int T;scanf("%d",&T);memset(dp,-1,sizeof dp);while(T--){scanf("%s",s);int len=strlen(s);solve(len);printf("%lld\n",dfs(len,0,0,1,1));}return 0;
}

Valley Numer hdu-6148相关推荐

  1. HDU 6148 Valley Numer (数位dp)

    题意: 求区间内满足非波峰数的个数. 其中波峰 是  先上升 在 下降,  平滑不会影响前面的状态. 思路: 很明显数位dp 令dp[i][j][k] 表示  枚举到数的第i 位, 前一个数字是j   ...

  2. HDU 6148 Valley Numer(数位DP)

    Valley Numer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot ...

  3. HDU 6148 - Valley Numer(数位DP)

    Valley Numer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot ...

  4. hdu 6149 Valley Numer II(01背包套状压dp)

    题目链接:hdu 6149 Valley Numer II 题意: 给你N个点,有k个为高点,其他为低点,现在这N个点有m条边,问你最多能组成多少个两个高点一个低点,低点和两个高点都有边相连这样的状态 ...

  5. hdu 6149 Valley Numer II(状压+ 枚举)

    Valley Numer II Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  6. 2017百度之星复赛:1006. Valley Numer(数位DP)

    Valley Numer  Accepts: 548  Submissions: 1125  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: ...

  7. HDU6148 Valley Numer

    HDU6148 Valley Numer 题目链接 题目大意: 思路 一道很明显的数位dp,不能出现先增后减这种情况,并且前导0是不合法,所以都需要额外的标志记录状态 代码 #include < ...

  8. Valley Numer

    Valley Numer dp实在是太难了,做到自闭,但是还是要坚强 这道题是一道数位dp,所谓数位dp就是在某个区间内求满足某个条件的数字的个数总数. 其实对这个题型不是很熟,就单纯讲讲这个题目吧. ...

  9. 题解HDU6148 Valley Numer(数位DP+深搜DFS)

    题解HDU6148 Valley Numer[数位DP+深搜DFS] 题目 解析 参考源码 题目 Description: 众所周知,度度熊非常喜欢数字. 它最近发明了一种新的数字:Valley Nu ...

  10. 2017 百度之星 复赛 Valley Numer(数位dp)

    Valley Numer 数位dp,state标志前面若干位是否存在递增序列. 代码: #include <bits/stdc++.h> using namespace std;typed ...

最新文章

  1. 【Airtest】Airtest中swipe方法兼容不同分辨率的解决方法
  2. 统计含中英文混编的NSString 字符串长度
  3. 电商那些年,我摸爬打滚出的高并发架构实战精髓(续)
  4. Imageio: 'ffmpeg-win32-v3.2.4.exe' was not found on your computer; downloading it now.
  5. Devoxx 2012:Java 8 Lambda和并行性,第1部分
  6. Spring面试,IoC和AOP的理解
  7. Virtual Machine Manager 2012 R2利用服务模板部署DC
  8. JavaScript Demo - so cool
  9. 面试准备每日五题:C++(一)——变量定义声明、#ifdef #else、结构体赋值、sizeof strlen、C和C++的static
  10. Redis之 介绍和安装
  11. 电脑销售渠道_小镇购买电脑遇难题:渠道少,价格无从比较!
  12. TF-Lite极简参考-环境搭建
  13. ROS:launch文件的语法规范
  14. springmvc或者springboot 中实现跨域的5种方式
  15. LINUX SHELL如何递归访问目录(处理包含空格的文件名)
  16. 伙伴算法的核心思想是回收时进行相邻块的合并_Linux内存管理之伙伴算法
  17. OpenGL ES glew 下载和使用
  18. 综合latch 规避
  19. 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest C题
  20. Java Math类方法介绍之史上最全

热门文章

  1. 设置切换输入法按键ctrl+shift
  2. 【altium designer】画原理图
  3. 福州师范大学计算机专业导师简介,黄欣沂_福建师范大学研究生导师信息
  4. 电源硬件设计----升降压变换器(负压输出)基础
  5. mysql 内存 优化_MySQL核心参数优化(内存优化)
  6. 刚刚,联通和华为发布《5G车路协同白皮书》| 附下载
  7. Excel如何对单元格内的分隔数据进行求和操作?
  8. 【Unity】让动画系统支持相对坐标
  9. 第三十五天:XSS跨站反射存储DOM盲打劫持
  10. 06.图像识别与卷积神经网络------《Tensorflow实战Google深度学习框架》笔记