HDU3555[Bomb]--数位DP
2017-10-11 20:21
543 查看
【链接】
hdu3555
【解题报告】
简单的数位DP
hdu3555
【解题报告】
简单的数位DP
#include<cstdio> #include<cstring> #define LL long long using namespace std; const int maxn=25; int T,n,a[maxn]; LL m,f[maxn][10]; inline LL Read() { LL res=0; char ch=getchar(); while (ch<'0'||ch>'9') ch=getchar(); while (ch>='0'&&ch<='9') res=res*10+ch-48,ch=getchar(); return res; } LL Dfs(int x,int las,bool pd) { if (x>n) return 1; if (!pd&&f[x][las]) return f[x][las]; int MAX=9; if (pd) MAX=a[x]; f[x][las]=0; for (int i=0; i<=MAX; i++) if (las!=4||(las==4&&i!=9)) f[x][las]+=Dfs(x+1,i,pd&(i==a[x])); return f[x][las]; } void Work() { a[0]=n=m=0; char ch=getchar(); while (ch<'0'||ch>'9') ch=getchar(); while (ch>='0'&&ch<='9') m=m*10+ch-48,a[++n]=ch-48,ch=getchar(); printf("%lld\n",m-Dfs(1,0,1)+1); } int main() { T=Read(); while (T--) Work(); return 0; }
相关文章推荐
- HDU3555 Bomb 数位DP
- Hdu3555 - Bomb - 数位dp
- hdu3555 Bomb 数位dp
- 【数位DP】 hdu3555 Bomb
- hdu3555 Bomb (记忆化搜索 数位DP)
- HDU3555 Bomb(数位dp)
- hdu3555 Bomb(数位dp)
- 【1】【数位DP】HDU3555 Bomb
- HDU3555 Bomb(数位DP)
- 【数位DP】HDU3555[Bomb]题解
- HDU3555 Bomb[数位DP]
- hdu3555 Bomb[数位dp]
- hdu3555 Bomb(数位DP)
- hdu3555 - Bomb(2010 ACM-ICPC Multi-University Training Contest(12))数位dp
- hdu3555---Bomb(数位dp,水)
- hdu3555 Bomb ——数位DP入门题
- hdu3555 Bomb --数位dp
- hdu3555——Bomb(数位DP)
- HDU3555 Bomb 数位DP第一题
- HDU3555:Bomb(数位DP)