HDU-2017"百度之星"程序设计大赛-复赛-1005-Valley Numer
来源:互联网 发布:mac上浏览图片的软件 编辑:程序博客网 时间:2024/06/05 08:54
ACM模版
描述
题解
很明显的数位
代码
#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;const int MAXN = 111;const int MAXM = 10;const int MOD = 1e9 + 7;char str[MAXN];int num[MAXN];int dp[MAXN][MAXN][MAXM][2][2];int dfs(int pos, int pre, int up, int down, int flag, int tag, int len){ if (pos < 0) { return 1; } if (dp[pos][len][pre][up][down] > -1 && !flag && !tag) { return dp[pos][len][pre][up][down]; } int res = 0; int o = num[pos]; for (int j = 0; j < MAXM; j++) { if (j > o && flag) { break; } if (tag) { res = res + dfs(pos - 1, j, 0, 0, j < o ? 0 : flag, tag && j == 0, len - (tag && j == 0)); } else if (j == pre) { res = res + dfs(pos - 1, j, up, down, j < o ? 0 : flag, tag && j == 0, len); } else if (j > pre) { res = res + dfs(pos - 1, j, 1, down, j < o ? 0 : flag, tag && j == 0, len); } else if (j < pre) { if (up) { continue; } res = res + dfs(pos - 1, j, up, 1, j < o ? 0 : flag, tag && j == 0, len); } res %= MOD; } if (!flag && !tag) { dp[pos][len][pre][up][down] = res; } return res;}int cal(){ int len = (int)strlen(str); for (int i = 0; i < len; i++) { num[i] = str[len - 1 - i] - '0'; } return dfs(len - 1, 0, 0, 0, 1, 1, len);}int main(){ memset(dp, -1, sizeof(dp)); int T; scanf("%d", &T); while (T--) { scanf("%s", str); long long ans = cal() - 1; printf("%lld\n", ans); } return 0;}
阅读全文
0 0
- HDU-2017"百度之星"程序设计大赛-复赛-1005-Valley Numer
- HDU-2017"百度之星"程序设计大赛-复赛-1006-Valley Numer II
- HDU6148 Valley Numer (2017百度之星程序设计大赛
- HDU 6148 && 2017 百度之星复赛 1005 Valley Numer(数位dp)
- 百度之星复赛Valley Numer II
- 2017 百度之星 复赛 Valley Numer(数位dp)
- 2017百度之星复赛 hdu 6148 Valley Numer (数位dp)
- 百度之星复赛--Valley Numer----数位dp
- 2017百度之星复赛:1006. Valley Numer(数位DP)
- 百度之星Valley Numer
- HDU-2017"百度之星"程序设计大赛-复赛-补题
- HDU-2017"百度之星"程序设计大赛-复赛-1001-Arithmetic of Bomb
- HDU-2017"百度之星"程序设计大赛-复赛-1003-Pokémon GO
- [2017百度之星程序设计大赛- 复赛] C
- hdu 5258 数长方形-2015年百度之星程序设计大赛 - 复赛
- Hdu今夕何夕 (2017"百度之星"程序设计大赛
- HDU 6112 今夕何夕 【数学公式】 (2017"百度之星"程序设计大赛
- HDU 6080 2017"百度之星"程序设计大赛
- 死锁
- Web网站的几个并发量级
- Mysql的简介与安装
- 【kong系列八】之HMAC认证hmac-auth插件
- Android EditText 手机号输入分段显示,回删也能正常显示
- HDU-2017"百度之星"程序设计大赛-复赛-1005-Valley Numer
- dp 数塔 经典动态规划问题
- xss攻击之窃取用户cookie
- Android中自定义checkbox样式
- 搭建1对1 C\S模型
- Hibernate的文件配置(一)
- Ubuntu配置NDK
- sass实现七色卡
- 新类库中的构件