自己做购物网站好吗/360识图

自己做购物网站好吗,360识图,做试客刷单的网站有哪些,兰州网络推广兰州网络推广文章目录 题意思路代码 题意 给你一段区间[x, y]求其中满足一个数恰好等于K个互不相等的B的整数次幂之和的数的个数。 例如:x 15, y 20, k 2, b 2,那么对于这个区间有且仅有三个数满足题意: 17 2 4 2 0 10001 17 2^42^0 10001 1724…

文章目录

  • 题意
  • 思路
  • 代码

题意

给你一段区间[x, y]求其中满足一个数恰好等于K个互不相等的B的整数次幂之和的数的个数。
例如:x = 15, y = 20, k = 2, b = 2,那么对于这个区间有且仅有三个数满足题意:
17 = 2 4 + 2 0 = 10001 17 = 2^4+2^0 =10001 17=24+20=10001
18 = 2 4 + 2 1 = 10010 18 = 2^4+2^1=10010 18=24+21=10010
20 = 2 4 + 2 2 = 10100 20 = 2^4+2^2=10100 20=24+22=10100

思路

对于这种题型一眼就看出是数位DP了。那么对于数位DP的技巧我在上一篇博客提到过链接: 数位DP技巧但是对于上一篇博客只是对于技巧1和分类讨论作了明确的说明,但是对于技巧2结合树形结构并没有细说。那么对于本题我们采用技巧2对于我们解决很有帮助。首先得知技巧1我们能够通过前缀和的方式。来求出问题提到符合区间的个数也就是f[y]-f[x-1]。那么我们如何求出区间[1,N]的符合条件的个数呢。

首先我们先分析一下本题。什么数才是满足条件的,其实就是将一个数转化成b进制,这个数有且仅有k个1出现就是符合条件的数。
那么现在我们将N转化成b进制得到n位数分别是 a n − 1 , a n − 2 , . . . , a 0 a_{n-1},a_{n-2},...,a_0 an1,an2,...,a0
在这里插入图片描述
那么我们按照以上的分法我们可以看出对于每一位的右侧我们是固定的。那么对于左侧的情况我们是不确定的。如果我们能够直接算出每一位左边的情况而不是枚举的话显然这样大大的节约了时间。实际上绝大多数的数位DP问题就是像上述一样将这个区间的最大值分成n位数。然后按照上述的分法去分类讨论每一位的情况。那么对于左边的算法的话一般就是利用动态规划或者排列组合去计算。对于本题来说我们是要看这n位b进制数有多少种选法使得有k个1。那么以最高位举例来说。对于右边来说我们没多大讨论的。如果是左侧选1的话那么对于后面的n-1位就要选出k-1个1出来也就是有 c n − 1 k − 1 c_{n-1}^{k-1} cn1k1种情况。如果左侧不选一的话对于后面n-1位来说就要选出k个1也就是有 c n − 1 k c_{n-1}^{k} cn1k种情况了。所以对于最高位如果 a n − 1 a_{n-1} an1大于1那么一共就会有 c n − 1 k − 1 + c n − 1 k c_{n-1}^{k-1} + c_{n-1}^{k} cn1k1+cn1k贡献。为什么是大于1代码里面会细说。

代码

#include<bits/stdc++.h>using namespace std;const int N = 35;int c[N][N];int l, r, k, b;void init() //递归求组合数
{for(int i = 0; i < N; i ++){for(int j = 0; j <= i; j ++){if(!j) c[i][j] = 1;elsec[i][j] = c[i-1][j] + c[i-1][j-1];}}
}int dp(int n)
{if(!n) return 0;vector<int> num;while(n){num.push_back(n%b);n /= b;}//拆分成n位b进制数n = num.size();int res = 0; //统计答案int last = 0; //统计前面右边已经用多少个1for(int i = n-1; i >= 0; i --){int x = num[i];// 求左边的情况,为什么这里不枚举[0~a_{n-1}],因为由题意知道我们是要看n位b进制数是否有k个1,我们这儿每一位只会取0和1。// 如果这一位为0,那么就进不去左边了。如果不为0那么我们才能进去。if(x){res += c[i][k-last]; //左边不为1if(x > 1) //因为左边是0~x-1,如果x不大于1那么我左边就不能选1,所以我左边能选1的情况一定是x要大于1才行。{if(k - last -1 >= 0)res += c[i][k-last-1]; //因为只能取k个1,还要减去前面右边用了多少个1break;}else // x = 1,只能右边为1{last++;if(last > k) break;}}if(!i && last == k) res++; //统计右边的情况。}return res;
}signed main()
{init();cin >> l >> r >> k >> b;cout << dp(r) - dp(l-1) << endl; //技巧1前缀和思想return 0;
}

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

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

相关文章

linux | vscode | makefile | c++编译和调试

简单介绍环境&#xff1a; vscode 、centos、 gcc、g、makefile 简单来说就是&#xff0c;写好项目然后再自己写makefile脚本实现编译。所以看这篇博客的用户需要了解gcc编译的一些常用命令以及makefile语法。在网上看了很多教程&#xff0c;以及官网也看了很多次&#xff0c;最…

前端开发实习总结参考范文

▼前端开发实习总结篇四 读了三年的大学&#xff0c;然而大多数人对本专业的认识还是不那么透彻&#xff0c;学的东西真正能够学以致用的东西很少&#xff0c;大家都抱怨没有实践的机会&#xff0c;在很多同学心里面对于本专业还是很茫然。直到即将毕业的时候才知道我们以前学…

uni-app中的uni.requireNativePlugin()

这个方法是用来引入原生插件的方法&#xff0c;自 HBuilderX 1.4 版本起&#xff0c;uni-app 支持引入原生插件&#xff0c;使用方式如下&#xff1a; const PluginName uni.requireNativePlugin(PluginName); // PluginName 为原生插件名称 引入插件的类型有三种&#xff1…

东南大学齿轮箱故障诊断(Python代码,CNN结合LSTM模型)

运行代码要求&#xff1a; 代码运行环境要求&#xff1a;Keras版本>2.4.0&#xff0c;python版本>3.6.0 1.东南大学采集数据平台&#xff1a; 数据 该数据集包含2个子数据集&#xff0c;包括轴承数据和齿轮数据&#xff0c;这两个子数据集都是在传动系动力学模拟器&am…

【计算机网络】计算机网络基础知识总结(秋招篇)

文章目录 前言计算机网络笔记TCP和UDP分别是什么 有什么区别基于TCP UDP这两个协议的上层协议有哪些&#xff1f;TCP和UDP分别在哪些领域被用的多&#xff1f;TCP实现可靠性传输用了哪些技术&#xff1f;&#xff08;TCP如何实现可靠性传输&#xff09;讲一下超时重传和超时定时…

全志F1C200S嵌入式驱动开发(触摸屏驱动)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 触摸屏一般有两种,一种是电阻触摸屏,一种是电容触摸屏。前者需要自己买一颗i2c的信号读取芯片,用的比较多的是ns2009。后者自身集成了读取芯片,用的比较多的是gt911。正好之前测…

C# Modbus TCP上位机测试

前面说了三菱和西门子PLC的上位机通信&#xff0c;实际在生产应用中&#xff0c;设备会有很多不同的厂家生产的PLC&#xff0c;那么&#xff0c;我们就需要一种通用的语言&#xff0c;进行设备之间的通信&#xff0c;工业上较为广泛使用的语言之一就是Modbus。 Modbus有多种连…

Pytorch从入门到精通:二、dataset与datalodar

数据是深度学习的基础&#xff0c;一般来说&#xff0c;数据量越大&#xff0c;训练出来的模型也越强大。如果现在有了一些数据&#xff0c;该怎么把这些数据加到模型中呢&#xff1f;Pytorch中提供了dataset和dataloader&#xff0c;让我们一起来学习一下吧&#xff0c;datase…

5-linux中的定时任务调度

定时任务调度 crond 任务调度概述基本语法常用选项快速入门应用实例crond 相关指令 at 定时任务基本介绍at 命令格式at 命令选项at 时间的定义其他指令 crond 任务调度 crontab 进行 定时任务调度 概述 任务调度&#xff1a;是指系统在某个时间执行的特定的命令或程序 任务…

360T7路由器进行WiFi无线中继教程

360T7路由器进行WiFi中继教程 1. 概述2. 360T7路由器进行WiFi中继实现教程2.1 登录路由器管理界面2.2 选择上网方式2.3 搜索WiFi2.4 连接WiFi2.5 点击确认2.6 在主页面查看网络 1. 概述 中继路由系统由一组中继路由器组成&#xff0c;为不能交换路由信息的路由域提供中继路由。…

Docker consul的容器服务更新与发现

&#xff08;1&#xff09;什么是服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的&#xff0c;不保障高可用性&#xff0c;也不考虑服务的压力承载&#xff0c;服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构&am…

centos 8安装A10显卡驱动-AI人工智能

centos 8安装A10显卡驱动命令:./NVIDIA-Linux-x86_64-535.54.03.run --kernel-source-path/usr/src/kernels/4.18.0-147.el8.x86_64 安装完毕; 测试: 检查驱动版本号: nvidia-smi 验证驱动模块已加载: lsmod | grep nvidia

【腾讯云 Cloud Studio 实战训练营】沉浸式体验编写一个博客系统

文章目录 前言新建工作空间登录(注册)Cloud Studio 账号&#xff1a;进入 Cloud Studio 控制台&#xff1a;配置工作空间参数&#xff1a;确认并创建工作空间&#xff1a;项目搭建 配置nuxt 脚手架运行项目报错信息解决错误脚手架运行预览问题 开启博客代码配置layout首页配置 …

JVM理论(六)执行引擎--垃圾回收

概述 垃圾: 指的是在运行程序中没有任何指针指向的对象垃圾回收目的: 为了及时清理空间使得程序可以正常运行垃圾回收机制: JVM采取的是自动内存管理,即JVM负责对象的创建以及回收,将程序员从繁重的内存管理释放出来,更加专注业务的开发垃圾回收区域: 频繁收集Young区(新生代)…

配置IPv4 over IPv6隧道示例

IPv4 over IPv6隧道&#xff1a; 在IPv4 Internet向IPv6 Internet过渡后期&#xff0c;IPv6网络被大量部署后&#xff0c;而IPv4网络只是散布在世界各地的一些孤岛。利用隧道技术可以在IPv6网络上创建隧道&#xff0c;从而实现IPv4孤岛的互联&#xff0c;IPv4孤岛能通过IPv6公…

MFC CList 类的使用

MFC提供CList 类&#xff1b; 类CList支持可按顺序或按值访问的非唯一对象的有序列表&#xff1b;CList 列表与双链接列表行为相似&#xff1b; 类型POSITION的变量是列表的关键字&#xff1b;可使用POSITION变量作为循环因子来顺序遍历列表&#xff0c;作为书签来保存位置&am…

自动驾驶数据标注有哪些?

自动驾驶汽车&#xff1a;人工智能(AI)的焦点 人工智能驱动汽车解决方案的市场规模预计到 2025年将增长十倍以上&#xff0c;提升车内体验的商机领域以及 AI 模型的无偏见训练数据的重要性。在本篇中&#xff0c;我们将介绍车外体验的关键组成部分&#xff0c;以及自动驾驶数据…

01背包相关题

题解&#xff1a;dp[j]表示目标和为j时的最大组合种数 class Solution { public:int dp[1005];int findTargetSumWays(vector<int>& nums, int target) {int val;int sum0;for(int i0;i<nums.size();i){sumnums[i];}int wsumtarget;if(w%21){return 0;}else{valw…

区间预测 | MATLAB实现QRGRU门控循环单元分位数回归多输入单输出区间预测

区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRGRU门控循环单元分位数回归分位数回归多输入单输出区间…

微服务Day4——Docker

一、什么是Docker 微服务虽然具备各种各样的优势&#xff0c;但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中&#xff0c;依赖的组件非常多&#xff0c;不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署&#xff0c;环境不一定一致&#xff0c;会…