tjut 5898
来源:互联网 发布:广州知卓广告 编辑:程序博客网 时间:2024/06/16 00:02
#include<set> #include<map> #include<ctime> #include<cmath> #include<stack> #include<queue> #include<cstdio> #include<string> #include<cstring> #include<iostream> #include<algorithm> #include<functional> typedef long long LL; using namespace std; #define inf 0x3f3f3f3f #define maxn 55 typedef long long LL; int num[25]; LL dp[25][5]; LL dfs(int pos, int limit, int status){ if (pos < 1){ if (status == 2 || status == 3) return 1; else return 0; } if (!limit&&~dp[pos][status]) return dp[pos][status]; int end = limit ? num[pos] : 9; LL ans = 0; for (int i = 0; i <= end; i++){ if (!status){ if (!i){ ans += dfs(pos - 1, 0, 0); } else if (i & 1){ ans += dfs(pos - 1, limit&&i == end, 1); } else{ ans += dfs(pos - 1, limit&&i == end, 3); } } else{ if (status == 1){ if (i & 1){ ans += dfs(pos - 1, limit&&i == end, 2); } } else if (status == 2){ if (i & 1){ ans += dfs(pos - 1, limit&&i == end, 1); } else{ ans += dfs(pos - 1, limit&&i == end, 3); } } else if (status == 3){ if (i & 1){ ans += dfs(pos - 1, limit&&i == end, 1); } else{ ans += dfs(pos - 1, limit&&i == end, 4); } } else{ if (!(i & 1)){ ans += dfs(pos - 1, limit&&i == end, 3); } } } } dp[pos][status] = ans; return ans; } LL solve(LL x){ memset(dp, -1, sizeof(dp)); int len = 0; while (x){ num[++len] = x % 10; x /= 10; } return dfs(len, 1, 0); } int main(){ int t; scanf("%d", &t); for (int tcase = 1; tcase <= t; tcase++){ LL l, r; scanf("%lld%lld", &l, &r); printf("Case #%d: %lld\n", tcase, solve(r) - solve(l - 1)); } }
0 0
- tjut 5898
- tjut 5289
- tjut 5288
- tjut 5294
- tjut 2586
- tjut 5296
- tjut 5297
- tjut 5299
- tjut 5384
- tjut 5387
- tjut 5386
- tjut 5381
- tjut 5400
- tjut 5399
- tjut 5396
- tjut 5398
- tjut 5412
- tjut 5410
- SYS_GUID()与sequence的比较
- @autowired作用
- Python中的函数
- 二叉树遍历变种101. Symmetric Tree
- Python模块的导入
- tjut 5898
- 自定义光标样式的CSS代码
- Codeforces Round #374 (Div. 2)C. Journey
- Bzoj-3242 快餐店(环套树)
- 安卓初级开发中遇到的一些问题
- 树的一些知识点总结
- pycharm破解
- 智能时代记录
- gnuplot 安装问题