题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555

简单的数位DP入门题目

思路和hdu2089基本一样

直接贴代码了,代码里有详细的注释

代码:

 #include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
using namespace std;
long long int dp[][];
void init()
{
dp[][]=;dp[][]=;dp[][]=;
for(int i=;i<;i++)
{
dp[i][]=dp[i-][]*-dp[i-][];//dp[i][0]表示长度为i的不含49的数的个数
dp[i][]=dp[i-][];//dp[i][1]表示长度为i的不含49且最高位为9的数的个数
dp[i][]=dp[i-][]*+dp[i-][];// dp[i][2]表示长度为i的含49 的数的个数
}
}
int bit[];
long long int solve(long long int n)
{
int len=;
while(n)
{
bit[len++]=n%;
n/=;
}
bit[len]=;
long long int ans=;
bool flag=;
for(int i=len;i>=;i--)
{
ans+=dp[i-][]*bit[i];
if(flag) ans+=dp[i-][]*bit[i];//如果高位已经出现49那么后面随意
if(flag== && bit[i]>) ans+=dp[i-][];
if(bit[i+]== && bit[i]== ) flag=; }
if(flag ) ans++;
return ans;
}
int main()
{
int t;
long long int n;
scanf("%d",&t);
init();
while(t--)
{
scanf("%I64d",&n); cout<<solve(n)<<endl;
}
return ;
}

hdu3555 Bomb 数位DP入门的更多相关文章

  1. hdu3555 Bomb (数位dp入门题)

    Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submi ...

  2. hdu3555 Bomb(数位dp)

    题目传送门 Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total ...

  3. hdu---(3555)Bomb(数位dp(入门))

    Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submi ...

  4. HDU3555 Bomb —— 数位DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 Bomb Time Limit: 2000/1000 MS (Java/Others)    M ...

  5. HDU 3555 Bomb 数位DP 入门

    给出n,问所有[0,n]区间内的数中,不含有49的数的个数 数位dp,记忆化搜索 dfs(int pos,bool pre,bool flag,bool e) pos:当前要枚举的位置 pre:当前要 ...

  6. HDU3555 Bomb[数位DP]

    Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submi ...

  7. HDU3555 Bomb 数位DP第一题

    The counter-terrorists found a time bomb in the dust. But this time the terrorists improve on the ti ...

  8. xbz分组题B 吉利数字 数位dp入门

    B吉利数字时限:1s [题目描述]算卦大湿biboyouyun最近得出一个神奇的结论,如果一个数字,它的各个数位相加能够被10整除,则称它为吉利数.现在叫你计算某个区间内有多少个吉利数字. [输入]第 ...

  9. 数位dp入门 hdu2089 不要62

    数位dp入门 hdu2089 不要62 题意: 给定一个区间[n,m] (0< n ≤ m<1000000),找出不含4和'62'的数的个数 (ps:开始以为直接暴力可以..貌似可以,但是 ...

随机推荐

  1. WebService客户端添加SOAPHeader信息

    通过JAXBContext创建Marshaller对头信息进行解析为dom,获取WSBindingProvider,使用Headers.creat()创建soap的Header元素: 另外就是:将us ...

  2. CentOS 下安装 Node npm pm2

    1.node安装 参考:http://blog.csdn.net/haidaochen/article/details/7257655 下载,你需要在https://nodejs.org/en/dow ...

  3. Unity 3D Framework Designing(6)——设计动态数据集合ObservableList

    什么是 『动态数据集合』 ?简而言之,就是当集合添加.删除项目或者重置时,能提供一种通知机制,告诉UI动态更新界面.有经验的程序员脑海里迸出的第一个词就是 ObservableCollection.没 ...

  4. iOS 历史浏览网页的定向跳转

    在实际的开发过程中,涉及到交互的问题,原生和H5的网页相互嵌套,直接造成跳转的混乱,混乱就应该指定的历史记录中,就需要网页的一些相关的一些属性问题 需要在webview里面的代理方法中执行相对应的操作 ...

  5. 老李分享:robotium常用API 2

    断言: 具体请查看官网 断言方法assert(robotium特有的断言方式,实际项目中和Junit的assert方法配合使用) void assertCurrentActivity (String ...

  6. 使用 SLF4J + LogBack 构建日志系统(转)

    转载自:http://www.cnblogs.com/mailingfeng/p/3499436.html 上次我们讨论了如何选择一个好的开源日志系统方案,其中的结论是:使用 SLF4J + LogB ...

  7. 锋利的jQuery(1)——DOM对象与jQuery对象的转换

    1.认识jQuery DOM对象:即文档对象模型 jQuery对象:通过jQuery包装DOM对象后产生的对象.这是jQuery对象所特有的,在jQuery对象中无法使用DOM对象的任何方法,同时DO ...

  8. Git 更新本地代码

    先用git remote -v 查看远程仓库的分支: 我分支远程仓库就只有一个分支master 比较本地仓库和远程仓库的不同 我本地仓库和远程仓库的代码是一样的所以没有区别 更新远程代码到本地 合并本 ...

  9. matlab 2016a破解中文版安装教程

    之前电脑重装过,所以要重新安装一个matlab,在大三的时候学过matlab,信息老师给的安装包,但是不知道放哪里去了,记忆力不好,找了些网上的教程和下载地址,真的是坑,一些都是不行的,在这里记录下m ...

  10. C# SMTP发送邮件

    public void SendMail() { MailMessage mail = new MailMessage(); mail.From = new MailAddress("fro ...