hdu3555 Bomb 数位DP
来源:互联网 发布:软件杯全国软件大赛 编辑:程序博客网 时间:2024/05/01 23:34
数位DP初学者,代码就是网上千篇一律,相似度极高的数位DP代码
一个不错的题解http://www.cnblogs.com/luyi0619/archive/2011/04/29/2033117.html
#include<iostream>#include<cstring>#include<cstdio>#define llong long longusing 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;}
- 【数位DP】 hdu3555 Bomb
- 【hdu3555】【数位DP】Bomb
- 【数位DP】Bomb HDU3555
- 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)
- 【数位DP】HDU3555-Bomb
- hdu3555 Bomb --数位dp
- HDU3555 Bomb[数位DP]
- hdu3555 Bomb(数位DP)
- 常用编码详解
- 操作系统实验(2)-- 模拟操作系统的页面置换 LRU OPT FIFO
- 进程与线程的区别联系
- axis1 创建service服务端 , axis1 客户端
- servlet和JSP的区别(简单描述)
- hdu3555 Bomb 数位DP
- 从printf谈可变参数函数的实现
- 关于Linux kernel中的config配置和makefile的组织
- 找出N个整数中最大的K个数
- ODB Compiler Manual
- 详解volatile在C++中的作用
- C++编程对缓冲区的理解
- uva 321 - The New Villa
- 求任意多边形的面积