数位DP入门之hdu 3555 Bomb
hdu 3555 Bomb
题意:
在1~N(1<=N<=2^63-1)范围内找出含有 ‘49’的数的个数;
与hdu 2089 不要62的区别:2089是找不不含 '4'和 '62'的区间范围内的数,此题是含有;正好相反,对于 "不要62"只是用第二位表示首位数字,这一题呢?
看转化:易知一定要要知道首位是9的个数,才能在前面加4得到 '49',但是什么状态能从不含 '49'转移到含 '49'?直接在不含'49'前加9,那么就出现了三个状态之间的递推转化,从而推出了第二维要使用三个状态来得出长度为i时的所有情况;
二维的状态:
[0]:只是不含 '49',不管首位(可以是9); [1]:不含 '49',但首位是9; [2]:含有 '49'
#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(i = 0;i < (n);i++)
typedef long long ll;
ll f[][];
void init()
{
f[][] = ;
for(int i = ;i <= ;i++){
f[i][] = f[i-][] * - f[i-][];
f[i][] = f[i-][]; // start with 9
f[i][] = f[i-][] + f[i-][]*; // contian 49
}
}
ll query(ll n)
{
int d[]={},tot = ;
while(n){
d[++tot] = n % ;
n /= ;
}
ll ans = ,flag = ;
for(int i = tot;i > ;i--){
ans += f[i-][]*d[i];
if(flag && d[i] > ) ans += f[i-][];
if(!flag) ans += f[i-][]*d[i];
if(d[i+] == && d[i] == ) flag = ;
}
return ans;
}
int main()
{
init();
int T;
cin>>T;
while(T--){
ll n;
scanf("%I64d",&n);
printf("%I64d\n",query(n+));
}
}
数位DP入门之hdu 3555 Bomb的更多相关文章
- 【数位dp】【HDU 3555】【HDU 2089】数位DP入门题
[HDU 3555]原题直通车: 代码: // 31MS 900K 909 B G++ #include<iostream> #include<cstdio> #includ ...
- 数位DP入门之hdu 3652 B-number
hdu 3652 B-number Problem Description A wqb-number, or B-number for short, is a non-negative integer ...
- hdu3555 Bomb 数位DP入门
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 简单的数位DP入门题目 思路和hdu2089基本一样 直接贴代码了,代码里有详细的注释 代码: ...
- HDU 2089 不要62【数位DP入门题】
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- xbz分组题B 吉利数字 数位dp入门
B吉利数字时限:1s [题目描述]算卦大湿biboyouyun最近得出一个神奇的结论,如果一个数字,它的各个数位相加能够被10整除,则称它为吉利数.现在叫你计算某个区间内有多少个吉利数字. [输入]第 ...
- 数位dp入门 hdu2089 不要62
数位dp入门 hdu2089 不要62 题意: 给定一个区间[n,m] (0< n ≤ m<1000000),找出不含4和'62'的数的个数 (ps:开始以为直接暴力可以..貌似可以,但是 ...
- HDU 3555 Bomb 数位DP 入门
给出n,问所有[0,n]区间内的数中,不含有49的数的个数 数位dp,记忆化搜索 dfs(int pos,bool pre,bool flag,bool e) pos:当前要枚举的位置 pre:当前要 ...
- HDU 3555 Bomb 数位dp
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3555 Bomb Time Limit: 2000/1000 MS (Java/Others) Mem ...
- HDU 3555 Bomb(数位DP模板啊两种形式)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 Problem Description The counter-terrorists found ...
随机推荐
- PAT 1007
1007. Maximum Subsequence Sum (25) Given a sequence of K integers { N1, N2, ..., NK }. A continuous ...
- com.domain.bean
package com.domain.bean; import java.util.LinkedHashMap; import java.util.Map; public class TmpBean ...
- linux服务器上apache+php独立于mysql server单独部署
1. mysql client 2. libmysqlclient-devel 3. PDO_MYSQL
- 利用QT开发一个记事本
区别于之前创建爱的各个工程,这次我们在这里选择基类为QMainWindow. 然后默认目录就是 直接到对应文件中进行代码的书写: main.cpp: #include "mainwindow ...
- 【转】SQL Server 2012 配置AlwaysOn(三)
转载自:http://www.cnblogs.com/lyhabc/p/4682986.html 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http:/ ...
- JavaScript总结1
一.JavaScript变量类型.声明.作用域 1.1 数字 number 小数和整数都叫number,以0x或0X开头的表示十六进制.当无穷大时,用Infinity表示(试试 9/0),其他非数字用 ...
- React组件生命周期过程说明【转】
实例化 首次实例化 getDefaultProps getInitialState componentWillMount render componentDidMount 实例化完成后的更新 getI ...
- JAXB - XML Schema Types, Binary Data
Data that has no "natural" representation with printable characters must, for inclusion in ...
- Linux中Oracle数据库备份还原
一.备份Oracle数据库 1.使用数据库管理员账户登录 sqlplus system/system@orcl as sysdba; 2.创建备份目录,并指定备份目录(bak_dir)的物理路径 cr ...
- angularJs中ui-router的使用
学习使用angular中,ui-route是其中的一个难点,简单使用没什么问题,但涉及到多级嵌套,就感觉有茫然,查了很多资料,踩过很多坑,到目前为止也不能说对ui-route有全面了解:这里只是把填补 ...