[bzoj4521][Cqoi2016][手机号码] (数位dp+记忆化搜索)
Description
Input
Output
输出文件内容只有一行,为1个整数,表示满足条件的手机号数量。
Sample Input
Sample Output
样例解释
满足条件的号码: 12121285000、 12121285111、 12121285222、 12121285333、 12121285550
Solution
单讲题目本身的话是很简单的一道题,题解就不多说了
但是,坑的地方挺多的
比如,格式化输入输出会wrong answer,要用输入输出流
还有,注意L、R的取值范围,0的起点从1e10开始
#include<cstring>
#include<iostream>
#define LL long long
int zt[],len;
LL L,R,f[][][][][];
LL dfs(int x,int et,int fr,int pre,int cov,int lim){
if(et && fr)return ;
if(!x)return cov==;
if(!lim && ~f[x][et][fr][pre][cov])
return f[x][et][fr][pre][cov];
LL ans=;
int num=lim?zt[x]:;
for(int i=x==len;i<=num;i++){
if(!cov)
ans+=dfs(x-,et||i==,fr||i==,i,,lim && i==num);
else
if(cov==)
ans+=dfs(x-,et||i==,fr||i==,i,,lim && i==num);
else
ans+=dfs(x-,et||i==,fr||i==,i,i==pre?cov+:,lim && i==num);
}
if(!lim)f[x][et][fr][pre][cov]=ans;
return ans;
}
LL getans(LL x){
for(len=;x;x/=)
zt[++len]=x%;
return dfs(len,,,,,);
}
int main(){
memset(f,-,sizeof(f));
std::ios::sync_with_stdio(false);
std::cin>>L>>R;
std::cout<<(L==?getans(R):getans(R)-getans(L-))<<std::endl;
return ;
}
[bzoj4521][Cqoi2016][手机号码] (数位dp+记忆化搜索)的更多相关文章
- [BZOJ4521][CQOI2016]手机号码(数位DP)
4521: [Cqoi2016]手机号码 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 875 Solved: 507[Submit][Status ...
- 数位dp/记忆化搜索
一.引例 #1033 : 交错和 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个数 x,设它十进制展从高位到低位上的数位依次是 a0, a1, ..., an ...
- [hihocoder 1033]交错和 数位dp/记忆化搜索
#1033 : 交错和 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描写叙述 给定一个数 x,设它十进制展从高位到低位上的数位依次是 a0, a1, ..., an - 1 ...
- 【poj1850】 Code 数位dp+记忆化搜索
题目大意:给你一个字符串,问你这个字符串的rank,如果这个字符串不合法,请直接输出0.(一个合法的字符串是对于∀i,有c[i]<c[i+1]) 字符串s的rank的计算方式:以字符串长度作为第 ...
- [BZOJ3598][SCOI2014]方伯伯的商场之旅(数位DP,记忆化搜索)
3598: [Scoi2014]方伯伯的商场之旅 Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 449 Solved: 254[Submit][Sta ...
- bzoj1833: [ZJOI2010]count 数字计数(数位DP+记忆化搜索)
1833: [ZJOI2010]count 数字计数 题目:传送门 题解: 今天是躲不开各种恶心DP了??? %爆靖大佬啊!!! 据说是数位DP裸题...emmm学吧学吧 感觉记忆化搜索特别强: 定义 ...
- 1026-windy数+数位DP+记忆化搜索
1026: [SCOI2009]windy数 题意:数位DP模板题: 目前只理解了记忆化搜索,就想练练手, ------给递推写法留一个位子 ------ 注意这道题要判断前导0的情况,1 )可以加一 ...
- 【每日dp】 Gym - 101889E Enigma 数位dp 记忆化搜索
题意:给你一个长度为1000的串以及一个数n 让你将串中的‘?’填上数字 使得该串是n的倍数而且最小(没有前导零) 题解:dp,令dp[len][mod]为是否出现过 填到第len位,余数为mod 的 ...
- luogu P2657 [SCOI2009]windy数 数位dp 记忆化搜索
题目链接 luogu P2657 [SCOI2009]windy数 题解 我有了一种所有数位dp都能用记忆话搜索水的错觉 代码 #include<cstdio> #include<a ...
随机推荐
- 洛谷P1514 引水入城——dfs
题目:https://www.luogu.org/problemnew/show/P1514 搜索+DP: 自己想出来的方法第一次80分好高兴! 再改了改就A了,狂喜乱舞: 也就是 dfs,仔细一想第 ...
- Python基础第二天
一.内容 二.练习 练习1 题目:已知msg='hello knight 666'编写for循环,利用索引遍历出每一个字符 图示: 代码: msg = 'hello knight 666' msg_l ...
- 可视图linux--ubuntu的安装以及tool的安装
1.下载ubuntu:http://cn.ubuntu.com/download/ 右键然后选择复制链接地址,然后将这个地址粘贴到迅雷,下载速度会比浏览器下载快. 2.创建虚拟机,安装ubuntu-- ...
- E20180115-hm
auxiliary adj. 辅助的; 备用的,补充的; 附加的; 副的; n. 助动词; 辅助者,辅助人员; 附属机构,附属团体; 辅助设备; departure ...
- Rails 确认params的统一方法
创建: 2017/11/06 Gemfile ### デバッグ出力の整形 gem 'awesome_print', :group => [:development, :test] a ...
- 洛谷2019 3月月赛 T1
题干 2019第一次月赛 我只有255pts T1还是比较水的... 海星 T1一道简单的模拟(就是有坑..导致很多人不能一次性AC 比如说我) _3个坑点 1.位数问题 2.-0 3.0... #i ...
- 循环语言(for)
循环语句: 给出初始条件,先判断是否满足循环条件,如果不满足条件则跳过for语句,如果满足则进入for语句循环,for语句内的代码执行完毕之后,将按照状态改变改变变量,然后判断是否符合循环条件,符合继 ...
- Android RxJava1.X升级到RxJava2.X笔记
简书地址 http://www.jianshu.com/p/2badfbb3a33b 描述 RxJava 1.X RxJava 2.X package包名 rx.xxx io.reactivex.xx ...
- (独孤九剑)--MySQL入门
:[一]概论 (1)什么是 MySQL? 一种关系型开源数据库,定义了存储信息的结构. 在数据库中,存在着一些表.类似 HTML 表格,数据库表含有行.列以及单元. 在分类存储信息时,数据库非常有用. ...
- 怎么让Eclipse对html和js代码自动提示
使用eclipse自带的插件,无需另外安装插件,具体步骤如下1.打开eclipse→Windows→Preferences→Java→Editor→Content Assist修改Auto Activ ...