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)相关推荐

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

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

  2. HDU 6148 Valley Numer(数位DP)

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

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

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

  4. 2017百度之星 复赛

    作为一只菜鸡,这可能是我OI生涯中最后一次打百度之星了,希望明年这个时候能不退役(虽然不大可能) 开始贴题解吧.会持续更新. 1001 Arithmetic of Bomb 煞笔模拟题,1A #inc ...

  5. HDU 6148 Valley Numer [数位dp]

    题意:求出小于等于n的,满足三种情况的任意一种的数的个数: ①每个位数字,递增,如122 ②每个位数字,递减,如211 ③每个位数字,先递减,在递增,如121 题解:数位dp,记录三维,pos(枚举的 ...

  6. 2017百度之星复赛:1003. Pokémon GO(递推)

    Pokémon GO  Accepts: 738  Submissions: 1725  Time Limit: 3000/1500 MS (Java/Others)  Memory Limit: 3 ...

  7. 2017百度之星程序设计大赛 - 复赛 01,03,05

    Arithmetic of Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  8. 2017百度之星总结

    2017百度之星总结 从陕西省赛回来之后就退役了,刚开始的时候很迷茫也很颓废,期末考也没有考好.因为我的某一些个人原因只能选择退队,很对不起johsnows和UMR,让他们两个独自去面对下半年的CCP ...

  9. HDU 6114 Chess 【组合数】(2017百度之星程序设计大赛 - 初赛(B))

    Chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

最新文章

  1. vue数组中数据变化但是视图没有更新解决方案
  2. .NET I/O 学习笔记:文件的读和写
  3. pmc订单表格_复工了,读一则“如何提升订单准交率和生产效率”的真实故事
  4. Centos7访问本地电脑共享文件夹遇到的问题
  5. ThinkPHP对Cookie的支持
  6. c++不好可以学qt吗_普通人可以学Python吗
  7. PHP程序员如何突破成长瓶颈(php开发三到四年)
  8. 卸载python27_27. 移除元素(Python)
  9. java ASM看到写的比较好的文章
  10. Redhat5.2yum源更新为centos源
  11. 10g添加用户 oracle_oracle10g下新建/删除用户
  12. 2021-07-26
  13. ssh框架 mysql 配置文件_SSH框架与配置文件的简单搭建
  14. R语言学习笔记5_参数的假设检验
  15. 我在 CMU 的八年博士生涯...
  16. 学术论文写作 | (1) Introduction写作套路
  17. 熊孩子太调皮,送他Airblock无人机变身小神童
  18. 白杨SEO:百度算法更新大全合集49条(截至2021年9月),做百度关键词搜索排名必看!
  19. ndn-cxx与nfd的安装
  20. linux串口通讯延时,linux下串口通讯参数设置

热门文章

  1. 【京东电商网站主界面仿写——CSS第一部分】
  2. 《Python绝技:运用Python成为顶级黑客》的学习笔记
  3. win7-32位系统SqlServer2014版本下载与安装
  4. JAVA:实现RodCutting棒材切割问题算法(附完整源码)
  5. 美的楼宇科技荆州工厂正式投产;华为加入国际电联P2C数字联盟 | 美通企业日报...
  6. 2022年高教杯国赛数学建模思路分享
  7. 无限渗透实战(2)--绕过认证上校园网
  8. 便笺Sticky note常用快捷键
  9. 笔记本外接显示器提示输入不支援
  10. 数据库树形结构存储方法的选择