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;
}

最新文章

  1. ElasticSearch 5学习(7)——分布式集群学习分享2
  2. jQuery 追加元素的方法如append、prepend、before,after(转)
  3. 【JUC】JDK1.8源码分析之SynchronousQueue(九)
  4. jshint配置(js检查)
  5. lucene.net的一个动态更新类
  6. 搭建Struts2不同版本jar包不同
  7. leetcode-Single NumberII
  8. Windows环境下Redis
  9. 【BZOJ】【1901】【Zju2112】 Dynamic Rankings
  10. 【POJ】3398 Perfect Service
  11. 闲话:你今天OO了吗?
  12. Delphi的文件操作(定义,关联,打开,读写,关闭)
  13. CSharp设计模式读书笔记(22):策略模式(学习难度:★☆☆☆☆,使用频率:★★★★☆)
  14. WCF学习笔记之传输安全
  15. 统计学习方法:KNN
  16. 关于模式为singTask的activity的bundle问题
  17. bzoj:1723: [Usaco2009 Feb]The Leprechaun 寻宝
  18. 浅谈java编译机制和运行机制
  19. Lambda表达式遍历和泛型ForEach遍历方式
  20. css 选择器/table属性/type 属性

热门文章

  1. 找了几个 Solon 的商业落地项目案例!
  2. springboot项目中swagger配置
  3. 【LeetCode字符串#05】基于个人理解的KMP算法图解,以及应用到strStr()函数实现
  4. AIFF和AIFF-C音频交换文件格式的简单介绍
  5. CF1638E Colorful Operations
  6. JZOJ 3207.Orthogonal Anagram
  7. P5787 二分图 /【模板】线段树分治
  8. html+css+js实现一个简易日历
  9. gin 01
  10. 在Django中显示MySQL语句