hdu 3555【数位DP】
2014-10-08 20:30
211 查看
数位DP。。。。。第一道数位DP,,但是感觉自己还弄得不是很清楚,,,,不知道到底是怎么进行的。不过原理还是有的。
#include <stdio.h> #include <string.h> #define ll __int64 ll dp[22][3]; int main() { int t; scanf("%d",&t); int i,j,k; 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]; } while(t--) { ll n; scanf("%I64d",&n); int top=0; ll ans=0; int flag=0; ll que[23]; memset(que,0,sizeof(que)); n++; while(n) { que[++top]=n%10; n=n/10; } // for(i=1;i<=top;i++) printf("***%d",que[i]);printf("\n"); for(i=top;i>=1;i--) { ans+=dp[i-1][2]*que[i]; if(flag) { ans+=dp[i-1][0]*que[i]; } else { if(que[i]>4) ans+=dp[i-1][1]; } if(que[i+1]==4&&que[i]==9) flag=1; } // if(flag) ans++; printf("%I64d\n",ans); } return 0; }
相关文章推荐
- hdu 3555 数位DP
- hdu 3555 - Bomb [数位dp]
- [HDU 3555]Bomb[数位DP]
- hdu 3555 数位dp
- hdu 3555 Bomb 数位DP
- hdu 3709+hdu 3555(数位dp)
- HDU 3555 Bomb 数位dp
- HDU 3555 Bomb 数位DP
- 几个基础数位DP(hdu 2089,hdu 3555,uestc 1307 windy 数)
- hdu 3555 数位DP
- hdu 3555 数位dp
- HDU-3555 Bomb 数位DP
- HDU 3555 Bomb(数位DP)
- hdu 3555 Bomb(数位DP,4级)
- HDU 3555 数位DP
- HDU 3555 \数位DP
- HDU 3555 Bomb (数位DP)
- hdu 3555 Bomb 数位dp
- hdu 3555 Bomb(数位DP,4级)
- HDU-3555 Bomb 数位DP