HDU 3555 Bomb(基础数位dp)
2014-09-05 11:20
302 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555
题意:找出1~n中含有49子串的数的个数。
AC代码:
题意:找出1~n中含有49子串的数的个数。
AC代码:
#include <stdio.h> #define ll __int64 ll dp[21][3]; int bit[21]; int main(){ int t; dp[0][0]=1; dp[0][1]=0; dp[0][2]=0; for(int i=1;i<21;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--){ ll n; scanf("%I64d",&n); int len=0,i,flag=0; for(;n;){ bit[++len]=n%10; n/=10; } ll ans=0; bit[len+1]=0; for(i=len;i>=1;i--){ ans+=dp[i-1][2]*bit[i]; if(!flag&&bit[i]>4) ans+=dp[i-1][1]; if(flag) ans+=dp[i-1][0]*bit[i]; if(bit[i+1]==4&&bit[i]==9) flag=1; } if(flag) ans++; printf("%I64d\n",ans); } return 0; }
相关文章推荐
- HDU 3555 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)
- hdu 3555 Bomb 数位dp
- hdu 3555 Bomb(数位DP,4级)
- hdu 3555 Bomb 数位DP
- hdu 3555 Bomb 数位dp
- 几个基础数位DP (hdu 2089,hdu 3555 ,uestc 1307 windy 数)
- HDU 3555 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)
- 几个基础数位DP(hdu 2089,hdu 3555,uestc 1307 windy 数)