acwing1081. 度的数量

求给定区间 [X,Y] 中满足下列条件的整数个数:这个数恰好等于 K个互不相等的 B的整数次幂之和。

例如,设 X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足题意:
17=24+20
18=24+21
20=24+22

输入格式

第一行包含两个整数 X和 Y,接下来两行包含整数 K和 B。

输出格式

只包含一个整数,表示满足条件的数的个数。

数据范围
1≤X≤Y≤231−1
,
1≤K≤20
,
2≤B≤10

输入样例:

15 20
2
2

输出样例:

3

注意此题在dfs的过程中,更新lim,不能和普通的十进制类似,对于普通的十进制,我们写成:

limit && i == a[pos]
limit && i == up

但对于此题,我们是枚举的每一位是否为 0 / 1 0/1 0/1,所以lim的限制只能使用第一种形式。lim是对于我们枚举原数位进行限制,但此处对于上界的确定:

int up=lim ? min(a[pos],1) : 1 ;

所以只能使用第一种形式

#include <bits/stdc++.h>using namespace std;
const int N = 1e6 + 5;
typedef long long ll;
typedef pair<ll, ll> pll;
typedef array<ll, 3> p3;
int mod = 1e9 + 7;
const int maxv = 4e6 + 5;ll dp[200][200];
int a[200];int l,r,k,b;ll dfs(int pos,int lim,int cnt)
{if(!pos) return cnt==k;if(!lim&&dp[pos][cnt]!=-1) return dp[pos][cnt];ll res=0;int up=lim ? min(a[pos],1) : 1 ;for(int i=0;i<=up;i++){if(cnt+i>k) continue;res+=dfs(pos-1,lim&&i==a[pos],cnt+i);}if(!lim) dp[pos][cnt]=res;return res;
}ll get(ll x)
{int len = 0;while (x){a[++len] = x % b;x /= b;}return dfs(len,1,0);
}void solve()
{cin>>l>>r>>k>>b;ll ans=get(r)-get(l-1);cout<<ans<<endl;
}int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;t = 1;// cin >> t;memset(dp, -1, sizeof dp);while (t--){solve();}system("pause");return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/90951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

目标检测YOLO实战应用案例100讲-基于YOLOv4的车牌识别

目录 前言 国内外研究现状 车牌识别系统研究现状 车牌定位算法研究现状

Java中@before和setup()方法的作用~

在Java中&#xff0c;setup()和Before同时使用的作用是在测试方法之前执行一些准备工作&#xff0c; setup()是JUnit中的一个方法&#xff0c;它通常被用来初始化测试对象和设置测试环境&#xff0c;它会在每个测试方法执行之前被调用&#xff0c;并且可以在多个测试方法中共享…

ubuntu 清理缓存

11 [1] ubuntu 清理缓存-CSDN博客

java集合

1.怎么在遍历 ArrayList 时移除一个元素&#xff1f; foreach遍历的时候删除元素会导致数组删除失败&#xff0c;可以使用迭代器的remove()方法 Iterator itr list.iterator(); while(itr.hasNext()) { if(itr.next().equals("aaa") { itr.remove(); …

《Upload-Labs》01. Pass 1~13

Upload-Labs 索引前言Pass-01题解 Pass-02题解总结 Pass-03题解总结 Pass-04题解 Pass-05题解总结 Pass-06题解总结 Pass-07题解总结 Pass-08题解总结 Pass-09题解 Pass-10题解 Pass-11题解 Pass-12题解总结 Pass-13题解 靶场部署在 VMware - Win7。 靶场地址&#xff1a;https…

基于Java的旅游管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

FreeRTOS入门教程(任务优先级,Tick)

文章目录 前言一、什么是任务优先级二、FreeRTOS如何分辨出优先级最高可运行的任务三、FreeRTOS中的时钟节拍Tick四、什么是时间片五、相同优先级任务怎么进行切换六、任务优先级实验七、修改任务优先级总结 前言 本篇文章将带大家学习FreeRTOS中的任务优先级&#xff0c;并且…

GPT-4科研实践:数据可视化、统计分析、编程、机器学习数据挖掘、数据预处理、代码优化、科研方法论

查看原文>>>GPT4科研实践技术与AI绘图 GPT对于每个科研人员已经成为不可或缺的辅助工具&#xff0c;不同的研究领域和项目具有不同的需求。例如在科研编程、绘图领域&#xff1a;1、编程建议和示例代码: 无论你使用的编程语言是Python、R、MATLAB还是其他语言&#x…

CSS笔记——font、line-height知识点及图片间隙、文本溢出等解决方案

一、CSS字体属性 font-family&#xff08;字体族&#xff09;&#xff1a;指定字体的名称或类别。可以指定多个字体族&#xff0c;用逗号分隔&#xff0c;浏览器会按照指定的顺序依次寻找可用字体。可取值&#xff1a; 字体名称&#xff1a;如"Arial"、"Times N…

pytorch gpu安装

cuda https://blog.csdn.net/qq_51570094/article/details/124148671 https://blog.csdn.net/zxdd2018/article/details/127705627 cudnn https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#installlinux-tar 更改cudnn 保证文件目录中只有一个解压后…

【SSL】用Certbot生成免费HTTPS证书

1. 实验背景 服务器&#xff1a;CentOS7.x 示例域名&#xff1a; www.example.com 域名对应的web站点目录&#xff1a; /usr/local/openresty/nginx/html 2. 安装docker # yum -y install yum-utils# yum-config-manager --add-repo https://download.docker.com/linux/ce…

【Nginx30】Nginx学习:代理模块(四)响应头与SSL

Nginx学习&#xff1a;代理模块&#xff08;四&#xff09;响应头与SSL 响应头相关的配置也和我们之前在 FastCGI 系列学过的响应头配置是类似的&#xff0c;这一块也比较简单。而另一部分则是 Proxy 模块另一个特有的功能&#xff0c;SSL 相关的配置。不过这一块吧&#xff0c…

web:[极客大挑战 2019]LoveSQL

题目 打开页面显示如下 查看源代码&#xff0c;查到一个check.php&#xff0c;还是get传参 尝试账号密码输入 题目名为sql&#xff0c;用万能密码 1or 11# 或 admin or 11 给了一段乱码&#xff0c;也不是flag 查看字段数 /check.php?usernameadmin order by 3%23&pass…

Codeforces Round 870 (Div. 2)C. Dreaming of Freedom(数论、约数)

C. Dreaming of Freedom 题意&#xff1a;给定n个程序员&#xff0c;m个算法&#xff0c;每个人只能为一个算法投票&#xff0c;经过每轮投票后都只留下得票最高的程序&#xff0c;问最后会不会陷入循环&#xff0c;即出现几个程序平票的情况。 思路&#xff1a;我们考虑题目中…

Word | 简单可操作的快捷公式编号、右对齐和引用方法

1. 问题描述 在理工科论文的写作中&#xff0c;涉及到大量的公式输入&#xff0c;我们希望能够按照章节为公式进行编号&#xff0c;并且实现公式居中&#xff0c;编号右对齐的效果。网上有各种各样的方法来实现&#xff0c;操作繁琐和简单的混在一起&#xff0c;让没有接触过公…

Redis学习笔记(常用数据类型,发布订阅,事务和锁机制,持久化,集群,雪崩,缓存击穿,分布式锁)

一、NoSQL数据库简介 解决扩展性问题&#xff0c;如果需要对功能进行改变&#xff08;比如增删功能&#xff09;&#xff0c;用框架有一定的规范要求&#xff0c;无形中解决了扩展性问题。 Redis是一种典型的NoSQL数据库。 NoSQL的基础作用&#xff1a; 1. nginx负载均衡反向…

深度学习概念——端对端

目录 1、端对端是什么2、端对端有什么用3、例子4、引用 在读论文的过程中反复遇到端对端的概念&#xff0c;就需要理解深刻一些。在此将收集到的一些资料拿出来辅以自己的拙见&#xff0c;请大家多多批评指正&#xff01; 1、端对端是什么 在计算机学科中有一种算法叫分治法&a…

Armv9读取cache内容:Direct access to internal memory

10 访问cache Cortex-A720核心提供一种机制,通过IMPLEMENTATION DEFINED系统寄存器可以读取L1缓存、L2缓存和Translation Lookaside Buffer(TLB)。当缓存数据与系统内存数据之间的一致性异常时,您可以使用此机制来调查任何问题。 只有在EL3中才可以访问内部内存(cache)。…

排序:最佳归并树(优化外部排序中对磁盘的读写次数)

1.归并树的性质 每个初始归并段对应一个叶子结点&#xff0c;把归并段的块数作为叶子的权值归并树的WPL树中所有叶结点的带权路径长度之和归并过程中的磁盘I/O次数归并树的WPL*2 如下图&#xff1a; 每个初始归并段看作一个叶子结点&#xff0c;归并段的长度作为结点权值&a…

【深度学习】分类问题探究(多标签分类转为多个二分类,等)

【深度学习】分类问题探究&#xff08;多标签分类转为多个二分类&#xff0c;等&#xff09; 文章目录 【深度学习】分类问题探究&#xff08;多标签分类转为多个二分类&#xff0c;等&#xff09;1. 介绍2. 一些解析2.1 关于多标签分类 to 多个二分类 2.2 continue 1. 介绍 在…