【数位DP】【HDU 3555】Bomb
2014-01-08 19:43
441 查看
求1~N中有多少个数包含“49”字样,N<2^63-1
#include <iostream> using namespace std; typedef unsigned long long u64; u64 f[30]; u64 g[30]; u64 h[30]; void solve(){ u64 n; cin>>n; n++; int a[30]={0}; int len=0; while(n){ a[++len]=n%10; n/=10; } u64 ans=0; int flag=0; for(int i=len;i>0;--i){ ans+=a[i]*f[i-1]; if(flag){ ans+=a[i]*g[i-1]; }else{ if(a[i]>4){ ans+=h[i-1]; } } if(a[i+1]==4 && a[i]==9){ flag=1; } } cout<<ans<<endl; } int main(){ f[0]=0; g[0]=1; h[0]=0; for(int i=1;i<=20;++i){ f[i]=f[i-1]*10+h[i-1]; g[i]=g[i-1]*10-h[i-1]; h[i]=g[i-1]; } int t;cin>>t; while(t--){ solve(); } return 0; }
相关文章推荐
- HDU3555——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
- HDU 3555 Bomb (数位dp)
- HDU 3555 Bomb [数位DP]【动态规划】
- [数位dp] hdu 3555 Bomb
- HDU 3555 Bomb (数位DP)
- 动态规划晋级——HDU 3555 Bomb【数位DP详解】
- HDU 3555 Bomb (数位DP)
- HDU 2089 不要62 && HDU 3555 Bomb (数位DP)
- hdu 3555 Bomb(数位dp)
- HDU 3555 Bomb ,HDU 2089 深刻学习数位dp (各种方法乱用)
- [HDU 3555] Bomb [数位DP]
- hdu 3555 Bomb 数位dp
- HDU-3555 Bomb (数位dp 入门题)
- 【数位dp】hud 2089 不要62 hdu 3555 Bomb