博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu2089 不要62 (数位dp)
阅读量:4880 次
发布时间:2019-06-11

本文共 1018 字,大约阅读时间需要 3 分钟。

题意:

就是在l到r之间有多少个数满足  没有包含62相连的  并且不含有4

#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define INF 0x3f3f3f3f#define LL long long#define N 106#define Lson rood<<1#define Rson rood<<1|1LL dp[20][20],d[20];LL dfs(int now,int up,int fp){ if(now==1) return 1; if(!fp&&dp[now][up]!=-1) return dp[now][up]; LL ans=0; int ma=fp?d[now-1]:9; for(int i=0;i<=ma;i++) { if(i==4||(up==6&&i==2)) continue; ans+=dfs(now-1,i,fp&&i==ma); } if(!fp&&dp[now][up]==-1) dp[now][up]=ans; return ans;}LL calc(LL x){ if(x==0) return 1; LL xxx=x; int len=0; while(xxx) { d[++len]=xxx%10; xxx/=10; } LL sum=0; for(int i=0;i<=d[len];i++) { if(i!=4) sum+=dfs(len,i,i==d[len]); } return sum;}int main(){ LL l,r; memset(dp,-1,sizeof(dp)); while(scanf("%lld%lld",&l,&r),l+r) { printf("%lld\n",calc(r)-calc(l-1)); } return 0;}

 

转载于:https://www.cnblogs.com/a719525932/p/7759971.html

你可能感兴趣的文章
Android Studio下载安装
查看>>
Java 抽象类
查看>>
CSS3学习系列之边框
查看>>
android pendingIntent的理解
查看>>
Nuget 配置文件的位置
查看>>
Python之——python-nmap的安装与常用方法说明
查看>>
Add to List 136. Single Number (找到单独的数) by Python
查看>>
Java学习笔记-策略模式
查看>>
liunx总结题
查看>>
数据结构系列(5)之 红黑树
查看>>
面试题巩固
查看>>
如何用.net制作一个简易爬虫抓取华为应用市场数据
查看>>
LeetCode:路径总和【112】
查看>>
国内首个HTML5应用开发平台AppCan近期将公测
查看>>
多线程循环打印ABC10次
查看>>
有些事情如果现在不做,以后也不会做了
查看>>
nginx 服务器 在 centos7 系统下的两种方式
查看>>
有一列数的规则如下 1、1、2、3、5、8、13、21、34... 求第30位数是多少.写出相关函数和算法名称...
查看>>
网页的结构
查看>>
[POJ1061] 青蛙的约会
查看>>