CF_305_C. Ivan and Powers of Two

保姆级教程:用DaVinci Configurator和Developer从零搭建一个汽车调光控制模块 本文提供了一份详细的DaVinci工具链实战指南,教你从零开始搭建汽车顶灯调光控制模块。通过DaVinci Configurator和Developer工具链,涵盖工程创建、SWC架构设计、接口定义等关键技术点,帮助工程师快速掌握AUTOSAR标准下的车载软件开发流程。 阅读详情

Sample test(s)
input
4
0 1 1 1
output
0
input
1
3
output
3

题目大致意思:

输入a[1],a[2]....a[n]n个非负整数,再添加最少数目的这样整数使得所有的整数以2为底的整数之后满足2^p(p>=0)的形式。

解题思路:

将输入的各个整数a[i]看看成整数的第a[i]个非零二进制位,其余为则为0,然后统计最后一个非零二进制为前面0的个数,即为最小值。例如:输入4个数分别为0,1,1,1则第0为为1,输入的1个数为3,故第1位为3%1,留下的3/2作为下位的进位。所以最终的和为111(2)不需要添加任何数。

代码:

首先对输入数据按升序排序,便于统计相同位数的个数;

分别建立列表存储不同的位,及相同该位的个数,并指向下一列

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #define N 100010
 4 typedef int  ll;
 5 ll a[N];
 6 typedef struct node
 7 {
 8     ll a;
 9     ll mem;
10     struct node* next;
11 } Node;
12 typedef Node *List;
13 int cmp(const void *a,const void*b)
14 {
15     return *(ll *)a-*(ll *)b;
16 }
17 int main(void)
18 {
19     ll n,i,j,count=0,sum=0,carry=0;
20     List head,current,prev;
21     head=NULL;
22     scanf("%d",&n);
23     for(i=1; i<=n; i++)
24         scanf("%d",&a[i]);
25     qsort(&a[1],n,sizeof(ll),cmp);//这里值得注意,排序应当从a[1]开始,
26     for(i=1; i<=n; i++)
27     {
28         current=(List)malloc(sizeof(Node));
29         current->next=NULL;
30         current->mem=0;
31         current->a=a[i];
32         if(head==NULL)
33             head=current;
34         else
35             prev->next=current;
36         for(j=i; j<=n; j++)
37         {
38             if(a[j]==a[i])
39                 (current->mem)++;
40             else
41                 break;
42         }
43         i=j-1;//循环变量退后一位
44         prev=current;//结构指针指向更新
45     }
46     sum+=head->a;//sum应当加上第一个非零位前面的零位,
47     while(head!=NULL)
48     {
49         count=carry+head->mem;//进位数加上当前位的重复数
50         i=head->a;
51         if(head->next==NULL)//当前为链表最后一项时终止循环
52             break;
53         else
54         {
55             while(count&&i<((head->next)->a))
56             {
57                 sum+=!(count%2);
58                 count/=2;
59                 i++;
60             }
61             carry=count;
62         }
63         sum+=(head->next)->a-i;//加上两个位之间的闲置0个数,
64         head=head->next;
65     }
66     while(count)//针对最后一个位进行统计,直至count为0.
67     {
68         sum+=!(count%2);
69         count/=2;
70     }
71     printf("%d\n",sum);
72     return 0;
73 }

 

Screenshot_2026-11-03-16-23-09-34.jpg 立即下载

相关推荐

研发流程后端开发工具,提示功能开发效率

后端开发工具

C. Powers Of Two 二进制

题目链接:http://codeforces.com/contest/1095/problem/C 题目大意:给你两个整数n和k,要求把n拆成k个2的幂的和。1 2 4 8 16…。如果无法做到就输出NO,能够做到就输出YES,并且输出k个2的幂加数。 思路:开始没有往二进制的方向想。只判断出是能不能满足条件。方案不知道怎么构造。 后来用了二进制。那么n的二进制有多少个1.这就是k的最小值。因为...

H_ang的博客 495

机器人具有扰动抑制功能的有限时间基于方位角的领航者-跟随者编队控制(Matlab代码实现)

内容概要:本文档标题为《Plecs全桥LLC谐振变换器仿真模型.txt》,但实际内容并未涉及该主题的具体技术细节或仿真建模过程。相反,文档实质是一份由科研服务团队发布的跨学科资源目录,集中展示了大量基于Matlab、Simulink、Python、PSCAD等平台实现的科研项目与算法开发案例,涵盖电力系统、无人机路径规划、微电网优化、状态估计、信号处理、车间调度、图像处理、通信技术、雷达追踪、智能优化算法等多个工程技术领域。每个条目以“【】”标注研究主题,并注明“Matlab代码实现”“Python代码实现”等形式,表明其为可提供技术支持与代码资源的服务项目。文档末尾频繁出现“完整资源下载:公众号——荔枝科研社”及百度网盘链接,明确体现出其作为科研辅助服务推广与引流工具的功能属性。; 适合人群:面向电气工程、自动化、控制科学与工程、计算机科学、智能制造、新能源、航空航天、通信工程及相关交叉学科的研究生、高校教师、科研人员及企业研发工程师。; 使用场景及目标:①为科研人员提供课题选题、技术路线设计与算法实现的参考范例;②辅助学生或研究人员完成课程设计、毕业论文、项目仿真与算法复现任务;③作为第三方技术服务团队的能力展示目录,便于潜在客户快速了解其在多领域提供的定制化仿真与算法开发服务范围。; 阅读建议:此文档并非传统意义上的学术论文或技术教程,而是一份高度碎片化、广告性质浓厚的资源索引清单。读者应忽略其误导性的文件名,将其视为一个综合性科研技术服务目录,重点关注自身研究方向相关的条目,并通过文末提供的公众号或网盘链接进一步获取具体代码与资料。同时,需注意甄别资源的技术质量、原创性与适用性,避免盲目依赖外部服务。

1095C - Powers Of Two(二进制)

一些基础的二进制 #include<bits/stdc++.h> using namespace std; int n ,k , a[105], tot, sum ; int main(){ cin >> n >> k; int x = n; while(x){ a[++tot] = x&1; ...

Victor的博客 390

科技中介服务机构如何打造高效、可复制的技术交易服务流程?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

高校技术转移办公室人员如何提升科研成果的市场推广与转化成功率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

CodeForces C - Powers Of Two

题意:给出一个数字n和k,使得k个数字加起来的和等于n。k个数字必须是2的幂次,比如1,2,4,8. 解法:首先排除k大于n的情况,这样即使全选1也不能满足。   比赛时候想得做法是,先把2的幂次打表,然后尽量塞最大的进去。   1.如果塞着塞着n等于0,必定有解。     1.k不等于0,那只需要把大于1的数字拆出来,自己除以2,并且放另一半在数组后面。如4 2,塞进去4,变成0 1,这...

weixin_34406796的博客 246

基于LSTM神经网络的风电功率预测研究(Matlab代码实现)

内容概要:本文档名为《Plecs全桥LLC谐振变换器仿真模型.txt》,但其实际内容并未包含与Plecs或全桥LLC谐振变换器相关的具体仿真模型,而是汇集了大量来自优快云博客平台的技术文章标题和片段,内容涉及基于MATLAB的电力系统动态分析、风储VSG系统仿真、多无人机路径规划、最优潮流计算、卡尔曼滤波状态估计、车间调度算法、无线电力传输、抽水蓄能电站调度等多个领域。这些内容主要围绕Matlab/Simulink或Python代码实现展开,覆盖电力电子、电力系统、自动化控制、优化算法、信号处理、深度学习等方向,具有较强的科研仿真属性。然而,文档整体缺乏统一主题与逻辑结构,信息呈现高度碎片化,更像是多个独立技术资源的罗列而非系统性论述。; 适合人群:适用于从事电力系统、电力电子、自动化控制、智能制造、人工智能、信号处理及相关交叉学科的研究生、高校科研人员及企业研发工程师。; 使用场景及目标:①作为科研选题与技术调研的灵感来源,快速掌握当前热门研究方向与方法论;②获取多种仿真模型的设计思路与实现框架,辅助完成课程设计、学位论文或科研项目的建模仿真任务;③结合文中提及的算法(如PSO、NSGA-II、EKF、CNN、LSTM等)与工具(如Matlab/Simulink、PSCAD等),开展系统性学习与二次开发。; 阅读建议:此文档内容杂乱无章,不具备连贯阅读价值,建议仅将其作为索引线索,从中提取感兴趣的主题后,进一步查找原始完整文献或配套代码资源进行深入研究,避免陷入无效信息泛滥的困境。

D. Points and Powers of Two【结论】

D. Points and Powers of Two题意:找最长的序列,使得该序列的任意两个值的差是2的倍数. 输出长度,并输出元素思路:假设长度为3,

Haipai1998的博客 734

医学图像处理实战:3D Slicer从安装到病灶分析全流程指南

本文提供了一份详尽的3D Slicer实战指南,涵盖从软件安装、DICOM数据导入到图像增强、病灶分割及三维可视化的全流程。重点演示了如何利用阈值分割、区域生长等核心图像处理技术进行病灶分析,并生成定量报告,是医学影像分析初学者的实用入门教程。

weixin_29278805的博客 601

Qwen-Image LoRA训练实战:从数据准备到异常修复的全流程解析

本文详细解析了Qwen-Image LoRA训练的全流程,从数据准备到参数优化再到异常修复。通过实战案例展示了如何利用LoRA技术微调Qwen-Image模型,提升中文场景下的图像生成质量,特别针对手脚生成异常等问题提供了有效解决方案。文章还分享了中文提示词优化技巧和高级训练方法,帮助开发者高效训练出高质量的LoRA模型。

lemon的博客 967

CodeForces - 305C Ivan and Powers of Two 优先队列

Ivan has got an array of n non-negative integers a1, a2, ..., an. Ivan knows that the array is sorted in the non-decreasing order. Ivan wrote out integers 2a1, 2a2, ..., 2an on a piece of paper. Now ...

还我笑颜 251

Nestjs框架: 集成 Prisma

NestJS官方文档提供了两种数据库相关的内容:Techniques下的数据库板块和Recipes下的具体数据库集成方案。本文以Prisma为例,演示了如何集成Prisma到NestJS项目中。首先创建NestJS项目并安装Prisma,配置MySQL数据库连接。通过Prisma CLI初始化项目、定义数据模型并生成迁移文件。接着创建Prisma模块和服务,配置Prisma客户端连接数据库。最后在控制器中注入PrismaService实现数据查询。整个过程包含了Docker启动MySQL、Prisma模型定

Wang的专栏 1294

CF305C Ivan and Powers of Two 题解

【洛谷】CF305C Ivan and Powers of Two 题解

gly2023的博客 413

BioEmu:微软黑科技炸场!生成式AI重构蛋白质模拟:千倍效率碾压传统计算,新药研发周期砍半

BioEmu 是微软推出的生成式深度学习系统,可在单个 GPU 上每小时生成数千种蛋白质结构样本,支持模拟动态变化、预测热力学性质,并显著降低计算成本。

士多啤梨先生の博客 1099

产品经理必看!用Cursor自动生成符合开发规范的技术文档(含UI设计规则模板)

本文详细介绍了产品经理如何利用Cursor工具自动生成符合开发规范的技术文档,并整合UI设计规则模板。通过配置标准化文档结构和设计关联规则,Cursor能有效解决术语不统一、结构混乱等问题,提升跨团队协作效率。文章包含实际案例、规则配置要点及企业级实施方案,帮助产品经理快速掌握AI辅助文档生成技巧。

emacs5lisp的博客 224

CodeForces 305C--Ivan and Powers of Two (STL:set)

好玩的题目:

Halo 882

上位机图像处理和嵌入式模块部署(开篇)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 图像处理是现实生活当中很实用的一门技术。工业上一般采用的是机器视觉,以传统算法和光源控制为主,部分采用了深度学习技术。而生活当中,则主要以二维码识别、人脸识别、车牌识别和ocr识别为主,这中间深度学习与AI扮演了很重要的角色。过去,市场上的商业收费软件,主要还是以传统设备厂商提供的上位机软件为主,那这一部分是不是结合最新的npu技术,应该做出一些新的东西出来呢?

嵌入式-老费,一个分享专业嵌入式知识的blog 1337

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

Android Google 支付接入

1. 从 2023 年 8 月 2 日起,所有新应用都必须使用结算库版本 5 或更高版本。自 2023 年 11 月 1 日起,现有应用的所有新版本都必须使用结算库版本 5 或更高版本。 2. 如果您的应用以 Android 14 或更高版本为目标平台,您必须更新到 PBL 5.2.1 或 PBL 6.0.1 或更高版本。

帅次的博客 9404

手把手教你学simulink--永磁同步电机场景实例:使用Simulink进行PMSM的矢量控制仿真

矢量控制的重要性提高效率:通过精确控制磁场方向,可以优化电机的工作状态,减少损耗。增强动态性能:矢量控制能够快速响应负载变化,提供更好的调速性能。简化设计:将复杂的交流电机控制问题转化为类似直流电机的控制问题,便于设计和实现。通过上述步骤,我们简要介绍了如何基于Simulink实现PMSM的矢量控制仿真。

MHD0815的博客 420

Codeforces->C. Powers Of Two

题目链接:https://codeforces.com/contest/1095/problem/C #include&lt;bits/stdc++.h&gt; using namespace std; int a[200005]; int main() { int n,k; while(cin&gt;&gt;n&gt;&gt;k) { fill(a+1...

cherish_lin的博客 332

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Powers Of Two(二进制拆分)

题目链接:http://codeforces.com/contest/1095/problem/C Examples input 9 4 output YES 1 2 2 4 input 8 1 output YES 8 input 5 1 output NO input 3 7 output NO 题意:n能否拆成k个2的整数次方相加,如果能输出YES以及一种拆法,否则输出NO 思路:先找出n...

永夜莫明的博客 1285

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Codeforces Round #496 C. Summarize to the Power of Two

题意 给你组序列,你可以随意找出一个a[i] 和 一个a[j] 让 a[i] + a[j]是2的次方,问你有几个 a[i] 不满足这个条件 思路 当时想的是无脑暴力一发,结果没有超时wa12,然后莫名放空自己,卡了一个小时 。。。到最后才发现,2的幂有30个 ,我写的是 &lt;30 应该写成 &lt;= 30 。。难受 ,思路就是 我先打一个2次幂的表,之后把我的a[i] 放到map里,之...

wjmwsgj的博客 577

codeforces 1005-C. Summarize to the Power of Two(打表+暴力)

http://codeforces.com/problemset/problem/1005/C 题目大意: 如果一个数组中,存在着这个数不管加上数组中其他任何数,其和都不是2的次幂,那么这个数就需要删除,问这个数组中需要删除多少个这样的数。 解题思路: 数据的范围是1e9,那么2的次幂打表到2e9即可,用set和map分别处理判断这个数与2的次幂之差是否能在数组中找到,...

HJ 598
上一篇: CF_CROC_2013_Champion_Intersection
下一篇: Multiplication Puzzle
rootial
博客等级 码龄15年 2粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值