hdu 3555 Bomb 数位DP
2013-09-05 20:53
459 查看
思路:
dp[i][0]:没有49出现的个数
dp[i][1]:出现只4的个数
dp[i][2]:出现49的个数
代码如下:
View Code
dp[i][0]:没有49出现的个数
dp[i][1]:出现只4的个数
dp[i][2]:出现49的个数
代码如下:
#include<cstdio> #include<cstring> #include<algorithm> #define ll __int64 using namespace std; int bit[20]; ll dp[20][3]; ll dfs(int pos,int h,bool f) { if(pos==-1) return h==2; if(!f&&dp[pos][h]!=-1) return dp[pos][h]; ll ans=0; int e=f?bit[pos]:9; for(int i=0;i<=e;i++){ int ha=h; if(h==1&&i==9) ha=2; if(h==1&&i!=9) ha=0; if(h!=2&&i==4) ha=1; ans+=dfs(pos-1,ha,f&&(i==bit[pos])); } if(!f) dp[pos][h]=ans; return ans; } ll cal(ll n) { int m=0; while(n){ bit[m++]=n%10; n/=10; } return dfs(m-1,0,1); } int main() { ll n; int t; memset(dp,-1,sizeof(dp)); scanf("%d",&t); while(t--){ scanf("%I64d",&n); printf("%I64d\n",cal(n)); } }
View Code
相关文章推荐
- HDU 3555 Bomb(数位DP)
- HDU3555——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入门题)
- Bomb - HDU 3555 数位dp
- [数位dp] hdu 3555 Bomb
- HDU3555——Bomb(数位dp入门)
- 【数位DP】【HDU 3555】Bomb
- 动态规划晋级——HDU 3555 Bomb【数位DP详解】
- HDU 3555 Bomb 【数位dp】
- HDU 3555 Bomb (数位DP)
- hdu 3555 Bomb(数位dp)
- HDU 3555 Bomb ,HDU 2089 深刻学习数位dp (各种方法乱用)
- [HDU 3555] Bomb [数位DP]
- 【数位dp】HDU - 3555 Bomb
- HDU 3555 Bomb (数位dp)