[Nowcoder] 数数字
题意:。。。咕咕懒得写了。
思路:
裸的记搜...
#include <bits/stdc++.h>
using namespace std;
#define ll long long
map<ll,ll>mp[200010];
ll L,R;
inline int read() {
int q=0,f=1;char ch = getchar();
while(!isdigit(ch)){
if(ch=='-')f=-1;ch=getchar();
}
while(isdigit(ch)){
q=q*10+ch-'0';ch=getchar();
}
return q*f;
}
ll l,r,ans;
int a[31];
int top;
inline ll dfs(ll p,ll lim,ll s) {
if(p == 0) {
if(s == -1) {
s = 0;
}
return L <= s && s <= R;
}
if(!lim && mp[p][s]) {
return mp[p][s] - 1;
}
ll res = 0;
int mx = lim ? a[p] : 9;
for(int i = 0;i <= mx; ++i) {
if(s == -1) {
if(!i) {
res += dfs(p - 1,lim && i == a[p],-1);
}
else res += dfs(p - 1,lim && i == a[p],i);
}
else {
res += dfs(p - 1,lim && i == a[p],s * i);
}
}
if(!lim) {
mp[p][s] = res + 1;
}
return res;
}
inline ll work(ll x) {
if(x == -1) {
return 0;
}
else {
top = 0;
while(x) {
a[++top] = x % 10;x /= 10;
}
}
return dfs(top,1,-1);
}
int main () {
scanf("%lld %lld %lld %lld",&l,&r,&L,&R);
printf("%lld\n",work(r) - work(l - 1));
return 0;
}
[Nowcoder] 数数字的更多相关文章
- 51nod 数数字(水题)
题目链接: 数数字 基准时间限制:1 秒 空间限制:262144 KB 统计一下 aaa ⋯ aaa n个a × b 的结果里面有多少个数字d,a,b,d均为一位数. 样例解释: 3333333333 ...
- java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果
package com.llh.demo; import java.util.Scanner; /** * * @author llh * */ public class Test { /* * 将任 ...
- 51nod 1770 数数字
1770 数数字 基准时间限制:1 秒 空间限制:262144 KB 分值: 20 难度:3级算法题 收藏 关注 统计一下 aaa ⋯ aaan个a × b 的结果里面 ...
- 牛客网NOIP赛前集训营-提高组(第一场)B 数数字
数数字 思路: 数位dp 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include< ...
- Carryon 数数字
Carryon 数数字 描述 Carryon 最近迷上了数数字,然后 Starry 给了他一个区间[l,r] ,然后提了几个要求, 需要将 l 到 r 之间的数全部转化成 16 进制,然后连起来. 将 ...
- 数数字(JAVA语言)
package 第三章习题; /* * 把前n(n<=10000)个整数顺次写在一起: * 89101112... * 数一数0-9各出现多少次 * (输出10个整数,分别是09出现的次 ...
- NOIP赛前集训营-提高组(第一场)#B 数数字
题目描述 小N对于数字的大小一直都有两种看法.第一种看法是,使用字典序的大小(也就是我们常用的判断数字大小的方法,假如比较的数字长度不同,则在较短一个前面补齐前导0,再比较字典序),比如43<3 ...
- 【C/C++】习题3-3 数数字/算法竞赛入门经典/数组和字符串
[题目] 把前n个(n<=10000)的整数顺序写在一起:123456789101112-- 数一数0~9各出现多少次(输出10个整数,分别是0,1,2,--,9出现的次数) [解答] 暴力求解 ...
- 数数字 (Digit Counting,ACM/ICPC Danang 2007,UVa 1225)
思路: 利用java 特性,将数字从1 一直加到n,全部放到String中,然后依次对strring扫描每一位,使其carr[str.charAt(i)-'0']++; 最后输出carr[i],即可. ...
随机推荐
- Python 项目隔离环境virtualenv--venv
virtualenv 用来为一个应用创建一套“隔离”的python运行环境. 先安装virtualenv: pip3 install virtualenv 再进入项目目录,或者创建一个项目目录并进入, ...
- jQuery, js 验证两次输了密码的一相同
<div class="form-group"> <label class="col-sm-2 control-label font"> ...
- luoguP1313 [NOIp2011]计算系数 [组合数学]
题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...
- element not visible的解决方法
抛出异常主题为element not visible主要有一下三个方面的原因. 元素之间存在逻辑关系,比如你要选择地址时,中国选择完毕之后,才能选择北京.如果想直接一步到位,则会出现element n ...
- 使用FTPClient实现文件上传服务器
import ch.qos.logback.classic.Logger; import org.apache.commons.net.ftp.*; import org.slf4j.LoggerFa ...
- JAVA学习之Java程序开发初次体验
Java环境搭建算完成了,那么接下来写个Java程序走一个 开发Java程序的简单流程 1.将Java代码编写到扩展名为.java的文件中2.通过javac命令对该Java文件进行编译(生成class ...
- Java List T 去掉重复对象-java8
Stream语法详解 Stream当成一个高级版本的Iterator.原始版本的Iterator,用户只能一个一个的遍历元素并对其执行某些操作:高级版本的Stream,用户只要给出需要对其包含的元素执 ...
- 拾遗:ssh 公钥连接前的相关准备
ssh 公钥连接条件: sshd_config 中启用公钥认证 authorized_keys 文件权限必须为 0600 目标用户的 家目录 权限必须为 0700 目标账户必须已设定登陆密码(即处于可 ...
- 拾遗:Git 常用操作回顾
温故而知新,可以为师矣. Git 布局 工作区---->暂存区---->本地仓库---->远程仓库 Create Repository git init PATH git add P ...
- 拾遗:使用 systemd-journald 管理 Docker 容器日志
在 docker.service 文件中的 ExecStart 字段中,添加(或:docker run --log-driver=journald): --log-driver=journald \ ...