数位dp( tzoj6061:Bomb-求49个数;tzoj1427: 不要62)
6061:http://www.tzcoder.cn/acmhome/problemdetail.do?method=showdetail&id=6061
dfs记忆化搜索

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll digit[20];
ll dp[20][2];
ll dfs(int len,bool if4,bool limit)//当前数是否是4 是否达到上界
{
if(len==0)return 1;//搜索到最低位 最低位一定满足条件 返回1
if(!limit&&dp[len][if4])return dp[len][if4];//未到达上界 并且这个状态已经有答案
ll cnt=0,up_bound=(limit?digit[len]:9); //是不是上界//n=512-> up=5
for(ll i=0;i<=up_bound;i++){
if(if4&&i==9)continue;//剪掉49这一支
cnt+=dfs(len-1,i==4,limit&&i==up_bound); //加上剩余满足条件的
}
if(!limit)dp[len][if4]=cnt; //不是上界;记录答案; 是上界的话答案就不能利用之前的了 要另外算
return cnt;
}
ll solve (ll num)
{
ll k=0;//记录几个数位
while(num){
digit[++k]=num%10;
num/=10;
} return dfs(k,false,true);
}
int main()
{
ll t;
ll n;
cin>>t;
while(t--){
cin>>n;
cout<<n-solve(n)+1<<endl;//总的减去 不包含49的(其中包括了0 所以多减了一个,要加回去)
}
return 0;
}
1427:http://www.tzcoder.cn/acmhome/problemdetail.do?method=showdetail&id=1427
和上一题一样;就是49改成62;再加一个4的条件即可

#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll digit[20];
ll dp[20][2];
ll dfs(int len,bool if6,bool limit)
{
if(len==0)return 1;
if(!limit&&dp[len][if6])return dp[len][if6];
ll cnt=0,up_bound=(limit?digit[len]:9);
for(ll i=0;i<=up_bound;i++){
if(if6&&i==2)continue;
if(i==4)continue;
cnt+=dfs(len-1,i==6,limit&&i==up_bound);
}
if(!limit)dp[len][if6]=cnt;
return cnt;
}
ll solve (ll num)
{
ll k=0;//记录几个数位
while(num){
digit[++k]=num%10;
num/=10;
} return dfs(k,false,true);
}
int main()
{
ll n,m;
while(scanf("%I64d%I64d",&n,&m),n!=0||m!=0){
printf("%I64d\n",solve(m)-solve(n-1));
}
return 0;
}
数位dp( tzoj6061:Bomb-求49个数;tzoj1427: 不要62)的更多相关文章
- [暑假集训--数位dp]hdu3555 Bomb
The counter-terrorists found a time bomb in the dust. But this time the terrorists improve on the ti ...
- (数位dp)Bomb (hdu 3555)
http://acm.hdu.edu.cn/showproblem.php?pid=3555 Problem Description The counter-terrorists found ...
- 递推、数位DP解析(以HDU 2089 和 HDU 3555 为例)
HDU 2089 不要62 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2089 Problem Description 杭州人称那些傻乎乎粘嗒嗒的人 ...
- 数位dp浅谈(hdu3555)
数位dp简介: 数位dp常用于求区间内某些特殊(常关于数字各个数位上的值)数字(比如要求数字含62,49): 常用解法: 数位dp常用记忆化搜索或递推来实现: 由于记忆化搜索比较好写再加上博主比较蒟, ...
- bzoj3209 花神的数论题——数位dp
题目大意: 花神的题目是这样的 设 sum(i) 表示 i 的二进制表示中 1 的个数.给出一个正整数 N ,花神要问你 派(Sum(i)),也就是 sum(1)—sum(N) 的乘积. 要对1000 ...
- beautiful number 数位DP codeforces 55D
题目链接: http://codeforces.com/problemset/problem/55/D 数位DP 题目描述: 一个数能被它每位上的数字整除(0除外),那么它就是beautiful nu ...
- LightOJ 1140: How Many Zeroes? (数位DP)
当前数位DP还不理解的点: 1:出口用i==0的方式 2:如何省略状态d(就是枚举下一个数的那个状态.当然枚举还是要的,怎么把空间省了) 总结: 1:此类DP,考虑转移的时候,应当同时考虑查询时候的情 ...
- CodeForces 55D Beautiful numbers(数位dp+数学)
题目链接:http://codeforces.com/problemset/problem/55/D 题意:一个美丽数就是可以被它的每一位的数字整除的数. 给定一个区间,求美丽数的个数. 显然这是一道 ...
- hdu 5106 Bits Problem(数位dp)
题目链接:hdu 5106 Bits Problem 题目大意:给定n和r,要求算出[0,r)之间全部n-onebit数的和. 解题思路:数位dp,一个ct表示个数,dp表示和,然后就剩下普通的数位d ...
- hdu4352 XHXJ's LIS(数位DP + LIS + 状态压缩)
#define xhxj (Xin Hang senior sister(学姐)) If you do not know xhxj, then carefully reading the entire ...
随机推荐
- 12月23日内容总结——csrf跨站请求伪造、校验策略、相关装饰器,auth认证模块及相关操作,拓展auth_user表
目录 一.csrf跨站请求伪造 概念引入 概念讲解 二.csrf校验策略 概念讲解 form表单操作csrf策略 ajax请求csrf策略 三.csrf相关装饰器 四.auth认证模块 五.auth认 ...
- python加密解密之AES
def encrypt(self, params: str, key: str, iv: str) -> str: """加密""" ...
- php 虚拟目录
问题: 站点的root目录为 /data/web/ ,现在想在www.111.com 下放一个站点,www.111.com/abc/ 但不能直接在/data/web/下创建abc目录,要放在 /dat ...
- MySQL 中的事务理解
MySQL 中的事务 前言 原子性 一致性 持久性 并发事务存在的问题 脏读 幻读 不可重复读 隔离性 事务的隔离级别 事务隔离是如何实现 可重复读 和 读提交 串行化 读未提交 可重复读解决了幻读吗 ...
- 打开MASA Blazor的正确姿势2:组件总览
官网文档按拼音罗列组件,且部分嵌套组件没有在导航栏内列出,不利于浏览查阅.本篇文章的主要目的,主要是对所有组件按大家习惯的方式进行分类,简要介绍组件,并建立跳转官方文档的链接. 一.导航布局类 1 ...
- cannot load "mso.dll" vs2008 web开发问题
已成功解决办法: ①将VS 2008安装包WCUWebDesignerCoreWebDesignerCore.exe提取并重新安装: ②将C:Program Files/Common Files/Mi ...
- 2021级《JAVA语言程序设计》上机考试试题5
这是系统员功能实现,因为使用到了教师,所以教师的Bean与Dao,以及更新的Servlet与service Teacher package Bean; public class Teacher {pr ...
- Technique to Read Source Code
Technique to Read Source Code Excerpted from http://ruby-hacking-guide.github.io/intro.htm Any progr ...
- Trie 的一类应用
\(\text{Trie}\) 先从 [十二省联考 \(2019\)] 异或粽子 谈起 不难想到堆加可持久化 \(Trie\) 的做法 这就和 \(\text{[NOI2010]}\) 超级钢琴 类似 ...
- [EULAR文摘] 超声对已获临床低活动度RA患者病情复发的预测
标签:eular文摘; 超声评估; 病情预测 超声对已获临床低活动度RA患者病情复发的预测 Lamers-Karnebeek FBG, et al. EULAR 2015.Present ID: OP ...