div2题目题解:I. Powers Of Two

Python入门之机器学习(非常详细)篇幅拉满,一般人看不完! 什么是机器学习?监督学习 supervised learning;非监督学习 unsupervised learning;半监督学习 semi-supervised learning;强化学习 reinforcement learning;监督学习是不断向计算机提供数据(特征),并告诉计算机对应的值(标签),最后通过大量的数据,让计算机自己学会判断和识别。例如Google Photo,你在APP中输入狗,这时就会弹出与狗相关的图片,这背后使用的算法就是监督学习。 阅读详情

题目:
I. Powers Of Two
time limit per test4 seconds
memory limit per test256 megabytes
inputstandard input
outputstandard output
A positive integer x is called a power of two if it can be represented as x=2y, where y is a non-negative integer. So, the powers of two are 1,2,4,8,16,….

You are given two positive integers n and k. Your task is to represent n as the sum of exactly k powers of two.

Input
The only line of the input contains two integers n and k (1≤n≤109, 1≤k≤2⋅105).

Output
If it is impossible to represent n as the sum of k powers of two, print NO.

Otherwise, print YES, and then print k positive integers b1,b2,…,bk such that each of bi is a power of two, and ∑i=1kbi=n. If there are multiple answers, you may print any of them.

Examples
inputCopy
9 4
outputCopy
YES
1 2 2 4
inputCopy
8 1
outputCopy
YES
8
inputCopy
5 1
outputCopy
NO
inputCopy
3 7
outputCopy
NO

题意:
给n,k让你用k个二次幂数表示n;
我们知道9用二次幂数表示就是1 8,样例要用4个二次幂数来表示9就是1 2 2 4:
算是一个半水不水的手速题目:
首先要判断:最少要多少个二次幂数来表示n,如果k小于这个最小值,那就很尴尬了,所以要有特判,至于做法:
首先要用二进制表示n:
我们举个例子:19就是10011;(16+2+1)
这个10011放数组存着,然后就是记录1的个数,这个个数就是我们要用的表示出来n要用的最少的二次幂数的个数:

int i=n;
	int num=2;
	int time;
	int num_1=0;
	for(time=0;i>0;time++)
	{
		if(i%num){num_1++;all[time]=1;i-=(num/2);}
		else all[time]=0;
		num*=2;
	}
	int point=time;//二进制的位数
	//input finished;
	int goal;
	if(k<num_1||k>n)printf("NO\n");
	

代码如上,可以看到是这样获取的;
然后就是做法,得到了19变成10011这个数组,我们怎么做下一步?
假设:k为4;

10011如果变成02011会不会等于原来?显然相等,2个8和1个16是相等的,如果需要k个数,但是我只有num_1个1,如何表示呢,只能从高位到低位一直化,相当于什么?大面额的钱给他敞开了来花;上代码:
完整代码:

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <climits>
#include <queue>
#include <stack>
#include <map>
//鬼畜头文件
using namespace std;
#define INF 0x3f3f3f3f
#define ULL unsigned long long
#define LL long long
//鬼畜define
int n,k;
int all[40];
int main()
{
	scanf("%d %d",&n,&k);
	int i=n;
	int num=2;
	int time;
	int num_1=0;
	for(time=0;i>0;time++)
	{
		if(i%num){num_1++;all[time]=1;i-=(num/2);}
		else all[time]=0;
		num*=2;
	}
	int point=time;//二进制的位数
	//input finished;
	int goal;
	if(k<num_1||k>n)printf("NO\n");
	else
	{
		printf("YES\n");
		for(int time1=point-1;time1>=0;time1--)
		{
			int P=k-num_1;
			if(P==0){break;}
			if(all[time1]<=P)
			{
				num_1+=all[time1];
				all[time1-1]+=all[time1]*2;
				all[time1]=0;
				goal=time1;
			}
			else
			{
				num_1+=P;
				all[time1-1]+=P*2;
				all[time1]-=P;
				goal=time1;
			}
		}
		int num=1;
		for(int time=0;time<=goal;time++)
		{
			for(int time2=0;time2<all[time];time2++)
			{
				printf("%d ",num);
			}
			num*=2;
		}
		printf("\n");
	}
 
 
}
【ComfyUI专栏】安装Triton组件 Triton是一款支持大模型推理的深度学习加速组件,最初仅支持Linux平台,现已通过开源社区适配Windows系统。针对SageAttention的安装,建议使用3.2.0Post10版本(该版本提供封装好的安装包,更高版本仅有源码)。用户可通过GitHub获取安装资源,或直接使用pip命令"pip install triton-windows"进行安装。安装时需注意:1)在虚拟环境中操作;2)使用管理员权限。相关资源链接已在文中提供。 阅读详情

相关推荐

realsense D455深度相机+YOLO V5结合实现目标检测(一)

realsense D455深度相机+YOLO V5结合实现目标检测代码来源环境配置代码分析:1.如何用realsense在python下面调用的问题:2.对main_debug.py文件的分析:结束语 可以实现将D435,D455深度相机和yolo v5结合到一起,在识别物体的同时,还能测到物体相对与相机的距离。 说明一下为什么需要做这个事情?1.首先为什么需要用到realsense D455深度相机? 因为他是普通的相机还加了一个红外测距的东西,所以其他二维图像一样,能够得到三维世界在二维像素平面的投影

文一生 3万+

(笔记)LeetCode231 Power of Two题解

/** * 判断n是否是2的幂次方 * * 一、 * 1 是 2的0次幂 * 2 是 2的1次幂 * 4 是 2的2次幂 * 8 是 2的3次幂 * 16是 2的4次幂 * * 二、 * 2/2 商1 余0 * 4/2 商2 余0 * 8/2 商3 余0 * 16/2 商4 余..

u011046452的博客 455

单目视觉定位:深入解析PNP算法在机器人导航中的实战应用

本文深入解析了PNP算法在机器人单目视觉定位中的核心原理与实战应用。通过拆解坐标变换四步,详细阐述了如何从二维图像点反求相机三维位姿。文章结合OpenCV的solvePnP函数,提供了算法选择、参数调优及结果后处理的实用指南,并针对机器人导航中的特征匹配、尺度不确定性等挑战,给出了鲁棒性优化与实时性平衡的解决方案。

weixin_29083649的博客 419

2020 GDUT Winter Personal Training Contest I (Div. 2) I - Powers Of Two 题解

原题 题目大意 给定一个整数n,要求用k个2的幂次方表示 题目分析 啊啊啊啊啊啊啊啊没来得及交啊 想知道一个数怎么拆成二进制的话上网查查快速幂就行,这个不难的 到了这道题的话,因为要凑够k个数,那么简单的分离是不足够的,不过我们可以先来两个剪枝 当分离出来的数(也就是指数二进制中1)的个数比k还多的时候,那就不能再用k个数去表示n了(见in3) 当全部数被分成了1还不小于k个数的时候,也不能凑...

juseice的博客 193

1985-2021年30m全国逐年土地覆被数据(含分省数据)

基于CLCD,揭示了1985年至2019年期间中国土地覆被变化的趋势和模式,如不透水表面(+148.71%)和水(+18.39%)的扩大,耕地(-4.85%)和草地(-3.29%)的减少,以及森林(+4.34%)的增加。由于中国的一系列造林政策,如1980年代启动的三北防护林工程和2000年后启动的绿色增益工程,从1985年到 2019年,森林增加了4.34%,灌木减少了259万公顷,与 ESACCI_LC的减少趋势相似。尽管为了养活不断增长的人口,中国东北和西北地区进行了广泛的开垦,但耕地普遍减少。

J_Giser的博客 1470

5.3-集群电源模式解析

DSU-120 DynamIQ™集群支持9种电源模式,包括正常运行(ON)、完全断电(OFF)、三种数据保持模式(FUNC_RET、FULL_RET、MEM_RET)、两种调试模拟模式(OFF_EMU、MEM_RET_EMU),以及系统恢复模式(WARM_RST、DBG_RECOV)。这些模式通过智能管理电源状态,在保持数据完整性的同时实现功耗优化,并为系统调试和故障恢复提供支持。不同模式在RAM保持、逻辑断电和调试能力方面各有侧重,满足从正常运行到深度调试等不同场景需求。

baron-周贺贺-代码改变世界ctw 117

Codeforces 1095C. Powers Of Two(二进制拆分)

A positive integerxxis called apower of twoif it can be represented asx=2yx=2y, whereyyis a non-negative integer. So, thepowers of twoare1,2,4,8,16,…1,2,4,8,16,…. You are given two positive...

点点滴滴 388

Codex入门00-初识神器(小白入门:到底什么是Codex CLI,和ChatGPT写代码有什么不同?)

OpenAI Codex CLI 是 OpenAI 于2025年推出的终端原生AI编程代理,不是在网页里聊天写代码,而是直接在你的终端里自主读代码、改文件、跑命令。它拥有三种安全模式、/goal 持久化任务、云端沙箱执行等独特能力。本文从零介绍 Codex CLI 的核心概念、与 ChatGPT 写代码的本质区别、典型使用场景和费用说明,让你全面认识这个改变开发方式的神器。

yueyeguzhuo的专栏 302

div2 c题专项训练

对于构造的反例的第一位,使用k个字母中在s中第一次出现位置下标最大的那个一定是最优的。这个字母加入到反例中,将s的相应前缀删除,重复上述过程。如果最后构造出的反例长度大于等于n,那么输出YES;否则输出NO,一个没有出现的子串可以构造为当前构造出的反例加上若干个在剩下的s中没有出现的字母,将反例长度扩充为n输出即可。c题普遍不考察高深算法,而考察对问题的分析能力和简单的数学推导。发现k个字母能form的长度为n的串数量是非常多的,如果去检验每一个串是否在s中是否出现复杂度过大且代码不好实现。

2301_82345937的博客 491

【Windows Server 2019】DNS服务器的配置与管理——DNS正向解析

博文介绍了如何使用正向解析区,包括创建和添加并验证,以及术语 主机记录,别名,邮件交换记录的解释。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 1万+

如何使用PostgreSQL数据库进行数据仓库的ETL操作

本文旨在为数据工程师、数据库管理员和分析师提供使用PostgreSQL进行数据仓库ETL操作的全面指南。ETL流程的基本原理PostgreSQL在ETL中的独特优势实际ETL实现的技术细节性能优化和最佳实践常见问题的解决方案首先介绍ETL和PostgreSQL的基本概念然后深入探讨核心技术和实现方法接着提供实际案例和代码示例最后讨论优化技巧和未来趋势ETL:提取(Extract)、转换(Transform)、加载(Load)的缩写,描述数据从源系统移动到目标数据仓库的过程。

2502_91592937的博客 873

Codeforces#640div4解题报告

Codeforces #640div4 A 原题 A positive (strictly greater than zero) integer is called round if it is of the form d00…0. In other words, a positive integer is round if all its digits except the leftmost (most significant) are equal to zero. In particular, all

Jeremy写字的地方 460

智能手表 BOM 表与版本管理记录

试产与量产阶段 智能手表 BOM 表与版本管理记录

hoony123的博客 1053

Codeforces Round #529 (Div. 3) C. Powers Of Two题解及思路

         time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Ivan wants to play a game with you. He picked some string ss of length nn consis...

qq_42426141的博客 291

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Codeforces Round #486 (Div. 3) D. Points and Powers of Two

D. Points and Powers of Twotime limit per test4 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThere are nn distinct points on a coordinate line, the coordinate of ii...

qq_36603180的博客 264

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Codeforces Round #529 (Div. 3) 题解

刷了一套题散散心,Div 3,全部是 1 A,感觉比以前慢了好多好多啊。 这几天也整理了一下自己要做的事情,工作上要努力... ... 晚上还是要认认真真背英语的。 找了几个同学问了一下,有点想自己做点 project 了,再学学机器学习,深度学习之类的,弄点小 AI project 玩玩吧... ...没事看点各种科技新闻开开眼界。 【题目链接】 A -Repeating ...

weixin_33720078的博客 185

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Codeforces Round #529 (Div. 3) C. Powers Of Two(数学????)

传送门 题意:   给出一个整数 n ,问能否将 n 分解成 k 个数之和,且这 k 个数必须是2的幂。   如果可以,输出"YES",并打印出任意一组解,反之输出"NO"; 题解:   预备知识补充:   如何求出 num 最少需要多少个2的幂之和?   例如 :     num = 3 = 20+21至少需要两个     num = 4 = 22 至少需要一个    ...

weixin_30454481的博客 181

Codeforces Round #486 (Div. 3) D. Points and Powers of Two【贪心】

D. Points and Powers of Twotime limit per test4 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThere are nn distinct points on a coordinate line, the coordinate of ii...

哇-WA 的博客 265

Codeforces Round #486(Div. 2) D. Points and Powers of Two

传送门:点击打开链接题意:找最长的序列,使得该序列的任意两个值的差是2的倍数. 输出长度,并输出元素。分析:可以证明最长长度为三。对stl不熟啊,代码写的搓。学习了一下大佬的代码。我的代码:#include &lt;bits/stdc++.h&gt; using namespace std; int main() { #ifdef _DEBUG #endif int n; cin &gt;...

常胜将军的博客 207

Educational Codeforces Round 83 (Rated for Div. 2) A - C

A.Two Regular Polygons 题意:在一个凸的正多边形中,选择任意多顶点,能否再构造一个凸正多边形。 思路:水题,只要构造出来的正多边形的边数是原正多边形边数的因数即可。 Code: #include<bits/stdc++.h> using namespace std; int main(int argc,char *argv[]){ int t; i...

QiPianZuo的博客 1778

Codeforces Round #529 (Div. 3) ABCD题解

A. Repeating Cipher 简单思维题 题目大意:给你一个经过加密的字符串S,S = S1S2S3.....;而Si意味着这个字母他会书写i次;列如baabbb,这是加密后的样子加密前就是bab;题目需要你输出加密前的字符串; 思路:用一个中间变量t充当i,每解密一个字母后,就t++;然后我循环输出的s[i+=t],每次就输出加密后Si的最后一个字母。就是需要的答案了。 #i...

qq_42129242的博客 358

Codeforces 988D 题解

&lt;988D&gt;题意:给定若干个数,问在其中挑选几个数组成一个集合,使得集合中任意以两个数a, b(a &gt; b)的差值均为2^n。思路:这题要先找规律,这个规律就是,集合中的元素最多有3个,证明如下:假设集合内目前只有三个元素:x,y,z 且 x &lt; y &lt; z则根据题意,有如下关系:z - y = 2^a (1)y - x = 2^b (2)z - x = 2^c (3...

FrozenAllen的博客 577

Codeforces Round #529 -C- Powers Of Two(二进制拆分)

A positive integer xx is called a power of two if it can be represented as x=2yx=2y, where yy is a non-negative integer. So, the powers of two are 1,2,4,8,16,…1,2,4,8,16,…. You are given two positive...

black_hole6的博客 898

Codeforces 1095C. Powers Of Two——————multiset

C. Powers Of Two A positive integer x is called a power of two if it can be represented as x=2yx=2^yx=2y, where y is a non-negative integer. So, the powers of two are 1,2,4,8,16,…. You are given two p...

鸿杰 的博客 1166

div2题目题解:J. Circular Dance

题目: J. Circular Dance time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard output There are n kids, numbered from 1 to n, dancing in a circle around the C...

DevourPower的博客 505

Codeforces529 -C Round #- Powers Of Two(二进制拆分)

A positive integerxxis called apower of twoif it can be represented asx=2^y , whereyyis a non-negative integer. So, thepowers of twoare1,2,4,8,16,…1,2,4,8,16,…. You are given two positive i...

qq_40293424的博客 259
上一篇: div2题目题解:J. Circular Dance
下一篇: GDUT_寒假训练题解报告_数论专题_个人题解报告——题目:D - Beautiful Numbers (CodeForces - 300C)【逆元、组合数公式】
DevourPower
博客等级 码龄7年 52粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值