codeforces 题目 Powers Of Two

目录

题目:

题目描述:

思路:

AC代码:


题目:

题目描述:

给你两个整数 n 和 k 

问是否能找到 k 个2的幂,使其总和为 n

若能,则输出这 k 个 2的幂;若不能,则输出 -1 

思路:

不难想到,跟 2 的幂有关的,基本都跟 2 进制有点关系。

一个 2 的幂,相当于是在二进制中的某一位是 1 ,其余位是 0 

①k的下限

一个数 n ,如果想要其变为 k 个 2的幂 的加和,那么 k 必须大于等于( n 的二进制中 1 的个数)

②k的上限

因为 1 也是 2的幂,所以,我们最多可以把 n 拆分成 n 个 1 。那么 k 必须小于等于 n

那么思路就很明确了,先探查k是否符合范围,再把比下限多出来的操作次数记录下来。从高到低遍遍历他的每一个 2进制 位,如果碰到非 0 且还有多的操作次数,那就将其转化成两个低位(如:8 → 4 和 4)

思路有了,具体操作请看AC代码

AC代码:

#include<bits/stdc++.h>
using namespace std;typedef long long ll;
const int N = 2e5 + 5;bitset<45>a;//用来转二进制
int b[45];//用来存放每个位输出几次void solve()
{int n, k;cin >> n >> k;a = n;//整型转成bitsetif (k<a.count() || k>n){cout << "NO" << '\n';return;}elsecout << "YES" << '\n';int cnt = k - a.count();//比最小操作次数多出来几次for (int i = 0; i <= 40; i++)b[i] = a[i];//bitset转到数组for (int i = 40; i >= 0; i--){if (!b[i])continue;while (cnt && b[i]){b[i]--;b[i - 1] += 2;cnt--;}while(b[i]--)cout << (1 << i) << " ";}cout << '\n';
}int main()
{std::ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t = 1;while (t--)solve();return 0;
}

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

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

相关文章

【C++】初阶模板

前言&#xff1a; 当我们要实现一个交换函数的时候&#xff0c;以我们现在的水平要实现一个很简单&#xff0c;但是我们是实现的函数仅仅可以对对指定类型进行交换&#xff0c;假设我们要实现一个int类型&#xff0c;我们就要写一个支持int类型更换的函数&#xff0c;只要类型一…

预览控制;预见控制;预测控制;预观控制(preview control)

预演控制&#xff08;preview control&#xff09;作为一种新兴的控制方法&#xff0c;首次在轮式车辆中被提出。 参考文献&#xff1a; https://www.sciencedirect.com/science/article/pii/S0016003219300390https://www.sciencedirect.com/science/article/pii/S0016003219…

Ardupilot开源飞控之VTOL之旅:配件试装

Ardupilot开源飞控之VTOL之旅&#xff1a;配件试装 1. 源由2. 分析2.1 【修改使用】FC & PDB & GPS打印件2.2 【直接使用】VTX & CRSF打印件 3. 试装3.1 【结构】问题1&#xff1a;GPS座子尺寸非常紧凑&#xff0c;需要用力压入卡座内。3.2 【结构】问题2&#xff…

docker启动nginx

创建配置文件 touch /nginx/ngin.conf 内容如下&#xff1a; #user nobody; worker_processes 1;events {worker_connections 1024; }http {include mime.types;default_type application/octet-stream;sendfile on;underscores_in_headers on; #该配置表示…

实验报告-实验四(时序系统实验)

软件模拟电路图 说明 SW&#xff1a;开关&#xff0c;共六个Q1~Q3&#xff1a;输出Y0~Y3&#xff1a;输出 74LS194 首先&#xff0c;要给S1和S0高电位&#xff0c;将A~D的数据存入寄存器中&#xff08;如果开始没有存入数据&#xff0c;那么就是0000在里面移位&#xff0c;不…

memcached怎么使用

Memcached 是一个用于缓存数据的开源、高性能、分布式内存对象缓存系统&#xff0c;通常用于提高应用程序的性能&#xff0c;减少数据库负载。它通过在内存中存储键/值对来加速数据的读取和写入。 以下是使用 Memcached 的一般步骤&#xff1a; 步骤 1: 安装和启动 Memcached…

智慧小区园区如何布局网络对讲系统

智慧小区园区如何布局网络对讲系统 随着小区住宅的不断更新发展&#xff0c;小区的管理人员也对小区内部的通讯也有了新的要求&#xff0c;要求在工作区域无盲区、语音通讯清晰&#xff0c;小区的安保后勤都能够随时在小区的地下室和室外工作区域、任何时间进行通信。提高小区…

Python 云服务器应用,Https,定时重启

Python 云服务器应用,Https,定时重启 环境搭建Python模块模块导入生成Flask实例GET处理启动服务器打开网页验证 GET接入证书 支持https申请证书下载证书保留 xxx.crt 和 xxx.key文件就可以了 copy到python项目目录ssl_context 配置 宝塔面板操作在www目录下新建python工作目录在…

CRM立项正当时|走过复杂多变的2023年,明年如何锚定确定性增长?

正值年末&#xff0c;又到复盘今年、规划明年的重要节点。 2023年&#xff0c;黑天鹅和新风口轮番登场&#xff0c;当不确定成常态&#xff0c;环境愈发错综复杂&#xff0c;企业家们如何深谋远虑&#xff0c;带领企业实现可持续、高质量发展&#xff1f;这里提供三个思考视角…

【目标检测】YOLO格式数据集txt标注转换为COCO格式JSON

YOLO格式数据集&#xff1a; images |--train |--test |--vallabels |--train |--test |--val 代码&#xff1a; import os import json from PIL import Image# 设置数据集路径 dataset_path "path/to/your/dataset" images_path os.path.join(dataset_path, &…

LoadRunner12.55的简介与安装

提示&#xff1a;https://mp.weixin.qq.com/s/iK-fh0VP7v8mNSDNxjkBow 文章目录 LoadRunner的简介与安装loadrunner概述loadrunner的下载与安装 LoadRunner的使用启用VuGen LoadRunner的简介与安装 LoadRunner官网&#xff1a;https://www.microfocus.com/zh-cn/products/load…

java面试题-Hashmap、Hashtable、ConcurrentHashMap原理

远离八股文&#xff0c;面试大白话&#xff0c;通俗且易懂 看完后试着用自己的话复述出来。有问题请指出&#xff0c;有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来&#xff0c;大家一起解决。 Hashmap和hashtable存储逻辑基本相同-都是基于hash表实现…

智能优化算法应用:基于水基湍流算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于水基湍流算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于水基湍流算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.水基湍流算法4.实验参数设定5.算法结果6.参考…

递增子序列(回溯)

题目描述 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素&#xff0c;如出现两个整数相等&#xff0c;也可以视作递增序列的一种特殊情况。 样例…

Unity使用打成图集的Sprite作为模型贴图使用的问题

大家好&#xff0c;我是阿赵。   有时候用Unity引擎做项目的时候&#xff0c;会遇到这样的需求&#xff0c;美术做了一些模型或者特效&#xff0c;然后策划想在游戏运行的时候&#xff0c;读取一些游戏图标放在特效或者模型上面当做贴图使用。   这个需求实现起来很简单&am…

手把手教你注册意大利商标

在当今全球商业环境中&#xff0c;拥有一个独特的商标可以为企业在市场竞争中提供重要优势。商标作为品牌形象的核心&#xff0c;有助于吸引潜在客户&#xff0c;提升品牌价值&#xff0c;增加客户忠诚度。在意大利&#xff0c;商标注册同样具有重要意义&#xff0c;它能为企业…

golang使用sip协议 用户名和密码注册到vos3000

在Go语言中&#xff0c;要使用SIP协议进行注册&#xff0c;您可以使用第三方库&#xff0c;如github.com/cloudwebrtc/sip。以下是一个简单的示例代码&#xff0c;演示如何使用Go语言中的该库进行基本的SIP注册&#xff1a; 首先&#xff0c;您需要安装该库&#xff1a; go ge…

销售人员如何自我提升?

销售人员如何自我提升&#xff1f; 在美国有这么一句流行语&#xff1a;不当总统就干销售员。其实在国内很多老板&#xff0c;高收入人群等大部分是来自销售岗位。因为销售是离钱最近的职业&#xff0c;在销售职业生涯中能收获到很多&#xff0c;比如人际关系能力&#xff0c;…

【刘二大人】pytorch深度学习实践(三):如何实现线性模型的反向传播+代码实现详解(Tensor、backward函数)

目录 参考资料一、反向传播流程1.1 问题1.2 方法1.3 步骤1.4 例题 二、Pytorch中前向传播和反馈的计算2.1 tensor数据类型2.2 定义线性模型并且计算损失2.2.1 torch.tensor.item()2.2.2 代码 2.3 反向传播2.3.1 torch.tensor.backward()2.3.2 tensor.zero_( )2.3.3 代码实现 三…

SASS基本语法总结

SASS是CSS预处理器&#xff0c;简单来说&#xff0c;SASS是比CSS更高一级的语言&#xff0c;它拥有CSS不具备的语法&#xff0c;比如if条件控制 SASS的预处理器 SASS是一种无法被浏览器直接执行的语言&#xff0c;我们需要通过预处理工具&#xff08;可以理解为翻译工具&…