Valley Numer hdu-6148
基本的数位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相关推荐
- HDU 6148 Valley Numer (数位dp)
题意: 求区间内满足非波峰数的个数. 其中波峰 是 先上升 在 下降, 平滑不会影响前面的状态. 思路: 很明显数位dp 令dp[i][j][k] 表示 枚举到数的第i 位, 前一个数字是j ...
- HDU 6148 Valley Numer(数位DP)
Valley Numer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- HDU 6148 - Valley Numer(数位DP)
Valley Numer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- hdu 6149 Valley Numer II(01背包套状压dp)
题目链接:hdu 6149 Valley Numer II 题意: 给你N个点,有k个为高点,其他为低点,现在这N个点有m条边,问你最多能组成多少个两个高点一个低点,低点和两个高点都有边相连这样的状态 ...
- hdu 6149 Valley Numer II(状压+ 枚举)
Valley Numer II Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 2017百度之星复赛:1006. Valley Numer(数位DP)
Valley Numer Accepts: 548 Submissions: 1125 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...
- HDU6148 Valley Numer
HDU6148 Valley Numer 题目链接 题目大意: 思路 一道很明显的数位dp,不能出现先增后减这种情况,并且前导0是不合法,所以都需要额外的标志记录状态 代码 #include < ...
- Valley Numer
Valley Numer dp实在是太难了,做到自闭,但是还是要坚强 这道题是一道数位dp,所谓数位dp就是在某个区间内求满足某个条件的数字的个数总数. 其实对这个题型不是很熟,就单纯讲讲这个题目吧. ...
- 题解HDU6148 Valley Numer(数位DP+深搜DFS)
题解HDU6148 Valley Numer[数位DP+深搜DFS] 题目 解析 参考源码 题目 Description: 众所周知,度度熊非常喜欢数字. 它最近发明了一种新的数字:Valley Nu ...
- 2017 百度之星 复赛 Valley Numer(数位dp)
Valley Numer 数位dp,state标志前面若干位是否存在递增序列. 代码: #include <bits/stdc++.h> using namespace std;typed ...
最新文章
- 【Airtest】Airtest中swipe方法兼容不同分辨率的解决方法
- 统计含中英文混编的NSString 字符串长度
- 电商那些年,我摸爬打滚出的高并发架构实战精髓(续)
- Imageio: 'ffmpeg-win32-v3.2.4.exe' was not found on your computer; downloading it now.
- Devoxx 2012:Java 8 Lambda和并行性,第1部分
- Spring面试,IoC和AOP的理解
- Virtual Machine Manager 2012 R2利用服务模板部署DC
- JavaScript Demo - so cool
- 面试准备每日五题:C++(一)——变量定义声明、#ifdef #else、结构体赋值、sizeof strlen、C和C++的static
- Redis之 介绍和安装
- 电脑销售渠道_小镇购买电脑遇难题:渠道少,价格无从比较!
- TF-Lite极简参考-环境搭建
- ROS:launch文件的语法规范
- springmvc或者springboot 中实现跨域的5种方式
- LINUX SHELL如何递归访问目录(处理包含空格的文件名)
- 伙伴算法的核心思想是回收时进行相邻块的合并_Linux内存管理之伙伴算法
- OpenGL ES glew 下载和使用
- 综合latch 规避
- 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest C题
- Java Math类方法介绍之史上最全
热门文章
- 设置切换输入法按键ctrl+shift
- 【altium designer】画原理图
- 福州师范大学计算机专业导师简介,黄欣沂_福建师范大学研究生导师信息
- 电源硬件设计----升降压变换器(负压输出)基础
- mysql 内存 优化_MySQL核心参数优化(内存优化)
- 刚刚,联通和华为发布《5G车路协同白皮书》| 附下载
- Excel如何对单元格内的分隔数据进行求和操作?
- 【Unity】让动画系统支持相对坐标
- 第三十五天:XSS跨站反射存储DOM盲打劫持
- 06.图像识别与卷积神经网络------《Tensorflow实战Google深度学习框架》笔记