首页 > 代码库 > hdu 3555 Bomb
hdu 3555 Bomb
http://acm.hdu.edu.cn/showproblem.php?pid=3555
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #define ll __int64 5 using namespace std; 6 7 ll dp[30][3]; 8 int num[30]; 9 10 void inti()11 {12 memset(dp,0,sizeof(dp));13 dp[0][0]=1;14 dp[0][1]=0;15 dp[0][2]=0;16 for(int i=1; i<30; i++)17 {18 dp[i][0]=dp[i-1][0]*10-dp[i-1][1];19 dp[i][1]=dp[i-1][0];20 dp[i][2]=dp[i-1][2]*10+dp[i-1][1];21 }22 }23 24 int main()25 {26 int t;27 scanf("%d",&t);28 inti();29 while(t--)30 {31 ll n;32 scanf("%I64d",&n);33 int cnt=0;34 while(n)35 {36 num[++cnt]=n%10;37 n=n/10;38 }39 num[cnt+1]=0;40 bool flag=false;41 ll ans=0;42 for(int i=cnt; i>=1; i--)43 {44 ans+=dp[i-1][2]*num[i];45 if(flag) ans+=dp[i-1][0]*num[i];46 else if(!flag&&num[i]>4)47 {48 ans+=dp[i-1][1];49 }50 if(num[i+1]==4&&num[i]==9)51 {52 flag=true;53 }54 }55 if(flag) ans++;56 printf("%I64d\n",ans);57 }58 return 0;59 }
hdu 3555 Bomb
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。