2017 百度之星 复赛 Valley Numer(数位dp)
Valley Numer
数位dp,state标志前面若干位是否存在递增序列。
代码:
#include <bits/stdc++.h>
using namespace std;typedef long long ll ;const int max_n=105;
const int mod = 1000000007;ll n;
ll dp[max_n][13][2], a[max_n];
string s;ll dfs(int pos,int pre,int limit,int state)
{if(pos == -1) return 1;if(!limit && dp[pos][pre][state] != -1) return dp[pos][pre][state];ll tmp = 0;int up = limit?a[pos]:9;for(int i = 0; i <= up; i++){if(pre==11 && i==0){//注意处理前导0的情况,全0的情况下要填入一个不影响结果的数字tmp = (tmp + dfs(pos-1, 11, limit&&i==up, 0))%mod;continue;}if(i<pre && state) continue;if(i<=pre)tmp = (tmp + dfs(pos-1, i, limit&&i==up, state))%mod;elsetmp = (tmp + dfs(pos-1, i, limit&&i==up, 1))%mod;}if(!limit) dp[pos][pre][state] = tmp;return tmp;
}ll solve()
{int pos = 0;for(int i = s.length()-1; i>=0; i--){a[pos++] = (s[i]-'0');}return dfs(pos-1,11,1,0);
}int main()
{int T;scanf("%d",&T);memset(dp, -1, sizeof(dp));while(T--){cin>>s;printf("%I64d\n",solve()-1);}return 0;
}
2017 百度之星 复赛 Valley Numer(数位dp)相关推荐
- 题解HDU6148 Valley Numer(数位DP+深搜DFS)
题解HDU6148 Valley Numer[数位DP+深搜DFS] 题目 解析 参考源码 题目 Description: 众所周知,度度熊非常喜欢数字. 它最近发明了一种新的数字:Valley Nu ...
- HDU 6148 Valley Numer(数位DP)
Valley Numer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- 2017百度之星复赛:1006. Valley Numer(数位DP)
Valley Numer Accepts: 548 Submissions: 1125 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...
- 2017百度之星 复赛
作为一只菜鸡,这可能是我OI生涯中最后一次打百度之星了,希望明年这个时候能不退役(虽然不大可能) 开始贴题解吧.会持续更新. 1001 Arithmetic of Bomb 煞笔模拟题,1A #inc ...
- HDU 6148 Valley Numer [数位dp]
题意:求出小于等于n的,满足三种情况的任意一种的数的个数: ①每个位数字,递增,如122 ②每个位数字,递减,如211 ③每个位数字,先递减,在递增,如121 题解:数位dp,记录三维,pos(枚举的 ...
- 2017百度之星复赛:1003. Pokémon GO(递推)
Pokémon GO Accepts: 738 Submissions: 1725 Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 3 ...
- 2017百度之星程序设计大赛 - 复赛 01,03,05
Arithmetic of Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- 2017百度之星总结
2017百度之星总结 从陕西省赛回来之后就退役了,刚开始的时候很迷茫也很颓废,期末考也没有考好.因为我的某一些个人原因只能选择退队,很对不起johsnows和UMR,让他们两个独自去面对下半年的CCP ...
- HDU 6114 Chess 【组合数】(2017百度之星程序设计大赛 - 初赛(B))
Chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
最新文章
- vue数组中数据变化但是视图没有更新解决方案
- .NET I/O 学习笔记:文件的读和写
- pmc订单表格_复工了,读一则“如何提升订单准交率和生产效率”的真实故事
- Centos7访问本地电脑共享文件夹遇到的问题
- ThinkPHP对Cookie的支持
- c++不好可以学qt吗_普通人可以学Python吗
- PHP程序员如何突破成长瓶颈(php开发三到四年)
- 卸载python27_27. 移除元素(Python)
- java ASM看到写的比较好的文章
- Redhat5.2yum源更新为centos源
- 10g添加用户 oracle_oracle10g下新建/删除用户
- 2021-07-26
- ssh框架 mysql 配置文件_SSH框架与配置文件的简单搭建
- R语言学习笔记5_参数的假设检验
- 我在 CMU 的八年博士生涯...
- 学术论文写作 | (1) Introduction写作套路
- 熊孩子太调皮,送他Airblock无人机变身小神童
- 白杨SEO:百度算法更新大全合集49条(截至2021年9月),做百度关键词搜索排名必看!
- ndn-cxx与nfd的安装
- linux串口通讯延时,linux下串口通讯参数设置
热门文章
- 【京东电商网站主界面仿写——CSS第一部分】
- 《Python绝技:运用Python成为顶级黑客》的学习笔记
- win7-32位系统SqlServer2014版本下载与安装
- JAVA:实现RodCutting棒材切割问题算法(附完整源码)
- 美的楼宇科技荆州工厂正式投产;华为加入国际电联P2C数字联盟 | 美通企业日报...
- 2022年高教杯国赛数学建模思路分享
- 无限渗透实战(2)--绕过认证上校园网
- 便笺Sticky note常用快捷键
- 笔记本外接显示器提示输入不支援
- 数据库树形结构存储方法的选择