hdu3555 Bomb 数位DP
2013-06-03 22:35
465 查看
数位DP初学者,代码就是网上千篇一律,相似度极高的数位DP代码
一个不错的题解http://www.cnblogs.com/luyi0619/archive/2011/04/29/2033117.html
一个不错的题解http://www.cnblogs.com/luyi0619/archive/2011/04/29/2033117.html
#include<iostream> #include<cstring> #include<cstdio> #define llong long long using namespace std; llong dp[20][3]; int digit[20]; int main(){ int i; int t; memset(dp,0,sizeof(dp)); dp[0][0]=1; for(i=1;i<20;i++){ dp[i][0]=dp[i-1][0]*10-dp[i-1][1]; dp[i][1]=dp[i-1][0]; dp[i][2]=dp[i-1][2]*10+dp[i-1][1]; } scanf("%d",&t); while(t--){ int len=0,last=0; llong ans=0; unsigned llong n=0; scanf("%I64d",&n); n++; //有人问这一步用途,可以分别带入49和50模拟一下代码的运行过程 memset(digit,0,sizeof(digit)); while(n){ digit[++len]=n%10; n/=10; } bool flag=0; for(i=len;i>=1;i--){ ans+=dp[i-1][2]*digit[i]; if(flag) ans+=dp[i-1][0]*digit[i]; if(!flag&&digit[i]>4) ans+=dp[i-1][1]; if(last==4&&digit[i]==9) flag=1; last=digit[i]; } printf("%I64d\n",ans); } return 0; }
相关文章推荐
- hdu3555 - Bomb(2010 ACM-ICPC Multi-University Training Contest(12))数位dp
- hdu3555---Bomb(数位dp,水)
- hdu3555 Bomb(数位dp)
- HDU3555 Bomb —— 数位DP
- 【数位DP入门】HDU3555 Bomb
- hdu3555--Bomb(数位dp练习3)
- HDU3555 Bomb[数位DP]
- HDU3555 Bomb[数位DP]
- 【数位DP】 hdu3555 Bomb
- hdu3555 Bomb[数位dp]
- hdu3555 Bomb(数位dp)
- hdu3555 Bomb(数位dp)
- HDU3555 Bomb(数位dp)
- hdu3555 Bomb ——数位DP入门题
- hdu3555 Bomb --数位dp
- hdu3555 Bomb (秒懂的数位dp)
- hdu3555 Bomb 数位DP入门
- hdu3555——Bomb(数位DP)
- HDU3555:Bomb(数位DP)
- 【HDU3555】Bomb【数位DP】【记忆化搜索】