hdu 3555 Bomb 【数位DP】
来源:互联网 发布:unity3d 捕鱼达人源码 编辑:程序博客网 时间:2024/06/10 08:04
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555
题意:上一题是不要62 这个是“不要49”
代码:
#include <stdio.h>#include <ctime>#include <math.h>#include <limits.h>#include <complex>#include <string>#include <functional>#include <iterator>#include <algorithm>#include <vector>#include <stack>#include <queue>#include <set>#include <map>#include <list>#include <bitset>#include <sstream>#include <iomanip>#include <fstream>#include <iostream>#include <ctime>#include <cmath>#include <cstring>#include <cstdio>#include <time.h>#include <ctype.h>#include <string.h>#include <assert.h>using namespace std;#define N 50using namespace std;int bit[N];long long dp[N][3];/* dp[i][0]:前i位不含 49 的个数。 dp[i][1]:前i位不含 49 数且i+1位是4的个数。 dp[i][2]:前i位含 49 的个数。*/long long dfs(int pos, int st, bool flag) { if (pos == 0) return st == 2; if (flag && dp[pos][st] != -1) return dp[pos][st]; long long ans = 0; int u = flag ? 9 : bit[pos]; for (int d = 0;d <= u;d++) { if (st == 2 || (st == 1 && d == 9)) ans += dfs(pos - 1, 2, flag || d<u); else if (d == 4) ans += dfs(pos - 1, 1, flag || d<u); else ans += dfs(pos - 1, 0, flag || d<u); } if (flag) dp[pos][st] = ans; return ans;}long long solve(long long n) { int len = 0; while (n) { bit[++len] = n % 10; n /= 10; } return dfs(len, 0, 0);}int main() { long long n; int t; scanf("%d",&t); while (t--) { scanf("%lld", &n); memset(dp, -1, sizeof(dp)); printf("%lld\n", solve(n)); } return 0;}
0 0
- HDU 3555 Bomb (数位DP)
- hdu 3555 - Bomb [数位dp]
- hdu 3555 Bomb【数位DP】
- HDU 3555 Bomb (数位DP)
- hdu 3555 Bomb 数位DP
- HDU 3555 Bomb (数位DP)
- hdu 3555 Bomb 数位dp
- [HDU 3555]Bomb[数位DP]
- HDU 3555 Bomb 数位DP
- hdu 3555 Bomb 数位dp
- HDU --3555--Bomb--数位DP
- hdu 3555 Bomb (数位DP)
- 【数位DP】【HDU 3555】Bomb
- hdu 3555 Bomb(数位DP)
- HDU 3555 Bomb(数位dp)
- 数位dp HDU 3555 Bomb
- HDU-3555 Bomb 数位DP
- HDU 3555 Bomb(数位DP)
- Codeforces Round #313 (Div. 2)
- 045.@protocol 委托代理
- 经典论文翻译导读之《Large-scale Incremental Processing Using Distributed Transactions and Notifications》 转载
- C++构造函数与传默认值的关系
- 29 - 数组中出现次数超过一半的数字
- hdu 3555 Bomb 【数位DP】
- 更改Eclipse下Tomcat的部署目录
- LayoutInflater 简要解析
- LAMP环境搭建(1)【apache】
- C++网络编程笔记
- Vim as Python IDE on windows(转)
- HDU 1247 Hat’s Words (Trie·指针实现)
- ijetty项目部署
- 【iOS开发】---- 把代码上传到github