codeforces 962 D. Merge Equals

逆向实战:手把手教你分析Google DroidGuard虚拟机的加密与反调试(附Python脚本) 本文深入解析Google DroidGuard虚拟机的加密机制与反调试策略,提供从环境配置到逆向分析的完整实战指南。通过IDA Pro、Frida等工具链,详细剖析DroidGuard的信号拦截、内存校验等保护机制,并附Python脚本实现自动化分析,助力Android安全研究人员突破GMS核心组件的安全防护。 阅读详情
D. Merge Equals
time limit per test : 2 seconds
memory limit per test : 256 megabytes
input : standard input
output : standard output

You are given an array of positive integers. While there are at least two equal elements, we will perform the following operation. We choose the smallest value xx that occurs in the array 22 or more times. Take the first two occurrences of xx in this array (the two leftmost occurrences). Remove the left of these two occurrences, and the right one is replaced by the sum of this two values (that is, 2⋅x2⋅x).

Determine how the array will look after described operations are performed.

For example, consider the given array looks like [3,4,1,2,2,1,1][3,4,1,2,2,1,1]. It will be changed in the following way: [3,4,1,2,2,1,1] → [3,4,2,2,2,1] → [3,4,4,2,1] → [3,8,2,1][3,4,1,2,2,1,1] → [3,4,2,2,2,1] → [3,4,4,2,1] → [3,8,2,1].

If the given array is look like [1,1,3,1,1][1,1,3,1,1] it will be changed in the following way: [1,1,3,1,1] → [2,3,1,1] → [2,3,2] → [3,4][1,1,3,1,1] → [2,3,1,1] → [2,3,2] → [3,4].

Input

The first line contains a single integer nn (2≤n≤1500002≤n≤150000) — the number of elements in the array.

The second line contains a sequence from nn elements a1,a2,…,ana1,a2,…,an (1≤ai≤1091≤ai≤109) — the elements of the array.

Output

In the first line print an integer kk — the number of elements in the array after all the performed operations. In the second line print kkintegers — the elements of the array after all the performed operations.

Examples
input
Copy
7
3 4 1 2 2 1 1
output
Copy
4
3 8 2 1 
input
Copy
5
1 1 3 1 1
output
Copy
2
3 4 
input
Copy
5
10 40 20 50 30
output
Copy
5
10 40 20 50 30 
Note

The first two examples were considered in the statement.

In the third example all integers in the given array are distinct, so it will not change.

题解:我们用优先队列。。。。对于这个题,我是各种问题暴露,首先优先队列不熟练,long long输出错误,自己不注意。。。

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<queue>
#include<map>
#define ll long long
using namespace std;
const int maxn = 1e5+7;
typedef pair<ll, ll> P;
int n;
ll a;
priority_queue<P, vector<P>, greater<P> > q, Q;


int main()
{
    scanf("%d", &n);
    for(int i = 1; i <= n; i++)
    {
        scanf("%lld", &a);
        P p(a, i);
        q.push(p);
    }
    while(!q.empty())
    {
        P p = q.top();
        q.pop();
        if(q.empty()) {
            swap(p.first, p.second);
            Q.push(p);
            break;
        }
        P pp = q.top();
        q.pop();
        if(pp.first != p.first)
        {
            q.push(pp);
            swap(p.first, p.second);
            Q.push(p);
        }
        else
        {
            pp.first *= 2;
            q.push(pp);
        }
    }
    printf("%d\n", Q.size());
    P p = Q.top();
    Q.pop();
    printf("%lld", p.second);
    while(!Q.empty()){
        p = Q.top();
        Q.pop();
        printf(" %lld", p.second);
    }
    cout << endl;
    return 0;
}


Natural Language Processing 作者:禅与计算机程序设计艺术 1.简介 自然语言处理(NLP)是研究如何使计算机理解和处理自然语言的理论和方法,目的是让电脑更好的理解、获取、生成、存储和沟通人类语言。20世纪80年代末,IBM的三位博士陈天奇、周博磊和王力雄在贝尔实验室创建了首个自然语言处理系统——“布莱克多·艾森豪威尔”(Bletc 阅读详情

相关推荐

Allegro17.2 出gerber文件详细流程 - 干货

Allegro17.2 出gerber文件详细流程 - 干货

u010614434的博客 1万+

Codeforces 962D Merge Equals

You are given an array of positive integers. While there are at least two equal elements, we will perform the following operation. We choose the smallest value x that occurs in the array 2 or more tim...

包子不卖包子 1092

泛微OAe9实战:如何从零搭建一个车辆预约系统(附完整代码)

本文详细介绍了如何利用泛微OA e9的建模引擎,从零开始构建一个企业级车辆预约管理系统。文章深入解析了核心数据模型设计、前后端双重预约冲突校验机制,并重点演示了如何配置自定义资源看板以实现车辆使用状态的可视化监控。该系统设计思路通用,可扩展至会议室、设备等各类共享资源的管理。

weixin_28363123的博客 142

ACM刷题之codeforces————Merge Equals

Merge Equalstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given an array of positive integers. While there are at least two equal elemen...

小时的枫的博客 632

UE5 StateTree实战:用分层状态机重构你的AI行为逻辑(附蓝图配置避坑点)

本文详细介绍了UE5中StateTree分层状态机的实战应用,帮助开发者重构AI行为逻辑。通过核心概念解析、迁移策略、高级技巧和避坑指南,展示了StateTree在灵活性、可维护性和并行处理方面的优势,特别适合复杂AI行为的开发与优化。

weixin_42558257的博客 247

电动汽车欧标直流充电标准解析

电动汽车和电动汽车充电市场是动态发展的,欧洲也正在努力部署基础设施,以支持欧洲快速增长和多样化的电动汽车充电需求。

网络安全的研究者、新能源行业的追求者 7616

CF D. Merge Equals

time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given an array of positive integers. While there are at least two equal el...

cgtllp1的博客 339

ESP8266 + MQTT :如何实现 LED 灯的远程控制

MQTT 是轻量级的、灵活的物联网消息交换和数据传递协议,致力于为 IoT 开发人员实现灵活性与硬件/网络资源的平衡。 NodeMCU 是一个开源的物联网平台。它使用 Lua 语言编程。该平台基于eLua开源项目,底层使用ESP8266 sdk 0.9.5版本。 在此项目中我们将实现 NodeMCU(ESP8266) 与 EMQ X Cloud 运营和维护的免费公共 MQTT 服务器远程控制 LED 灯,并使用 Arduino IDE 来对 NodeMCU ESP8266 进行编程。 EMQ X Cloud

emqx_broker的博客 3357

D. Merge Equals(优先队列小贪心)

【题意】 给n个数,每次选择最小的两个,且在最左边,且两个是相等的,把第一个消除掉,第二个变成两倍,位置不变。 问几番操作后 最后的数组是怎样的。 【题解】 优先队列处理即可,处理元素val值和下标,如果两个数相等,那么就优先输出最开始输入的那两个,如果两个数不相等,那么就把最小的那个先记录下来,然后把另一个压回到优先队列中。因为有可能组成另一个稍微大点的值。然后就是两个数合并过程和输出记...

ccsu_deer 595

DELL SC存储扩容避坑指南:6Gb vs 12Gb扩展柜混插的真相

本文深入解析DELL SC存储扩容中6Gb与12Gb扩展柜混插的核心规则与性能影响。文章指出,从SCOS 7.3版本起允许混插,但整个SAS环路速率将降至最低设备水平,尤其在12Gb控制器上接入6Gb扩展柜会严重拖累性能。指南提供了清晰的兼容性矩阵、实战操作流程及关键避坑清单,帮助管理员安全、高效地完成存储扩容。

weixin_28314575的博客 458

八股已死、场景当立(Docker篇)

本文总结了Docker相关的面试八股文,重点介绍了Docker在Java开发中的应用。主要内容包括:Docker容器与虚拟机的区别及其对Java应用性能的影响;如何为Java应用构建优化镜像;Docker常用命令在Java容器管理中的使用;Docker网络模式与数据卷在Java微服务中的配置;使用Docker Compose部署Java+MySQL微服务的方法;以及为Java应用配置健康检查的重要性。文章还通过具体示例说明了Nginx容器挂载、日志收集等常见场景的实现方式,为Java开发者提供了实用的Doc

qq_55253420的博客 714

洛谷 CF962D Merge Equals 省选 优先队列 c++

声明:本人->萌新 题目描述 查看题目信息 给定一个正整数序列,这里面至少有2个数相同。 我们执行如下操作:找到最小的数值x(x重复出现了2次或2次以上),删除第1次出现的x,将第2次出现的x改为2*x(数值在原来基础上乘以2),直到序列中没有哪个数值重复出现2次或2次以上。 比如:给定序列[3,4,1,2,2,1,1].将按如下方式进行变化:[3,4,1,2,2,1,1]->[3,4,2,2,2,1]->[3,4,4,2,1]->[3,8,2,1] 输入格式 第1行包

m0_64075498的博客 1184

代谢组数据分析(二十四):基于tidymass包从质谱原始数据到代谢物注释结果的实践指南

本教程介绍了如何使用 R 语言中的 tidymass 包进行代谢组学数据分析。tidymass 是一个专为液相色谱-质谱(LC-MS)数据设计的开源工具,提供从数据准备到统计分析的全流程支持。教程详细讲解了数据准备、数据处理、数据探索、数据清洗、代谢物注释、统计分析及结果输出的步骤。用户需准备 MS1、MS2 数据和样本信息表,并通过 tidymass 进行峰识别、峰分组、保留时间校正等操作。数据处理后,用户可进行数据探索、清洗和代谢物注释,最终通过统计分析发现潜在的生物标志物,并输出结果。教程还提供了代码

专注生信领域 1635

codeforces 962 D. Merge Equals

D. Merge Equals time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given an array of positive integers. While there are a...

bjfu170203101的博客 231

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Merge Equals CodeForces - 962D(优先队列)

CF真是锻炼STl用法的好地方 http://codeforces.com/problemset/problem/962/D D. Merge Equals time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output You are ...

jiotenno的博客 407

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Codeforces 962D - Merge Equals

链接: http://codeforces.com/problemset/problem/962/D 题意: 给出一个整数序列。选择其中最小且出现两次(或以上)的数,把最左边的两个从序列中移除,然后把它们的和放到它们的后面第一位。不断重复上述过程,直到序列中的每个数都是唯一的。输出最后的序列。 分析: 如果在数a的前面有一个可以跟a合并的数b,则b一定是唯一的。否则,b要先跟...

weixin_30394333的博客 116

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

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

codeforces 962D Merge Equals

题目链接:http://codeforces.com/contest/962/problem/D 题意:输入n,接下来输入n个数ai。每次从左往右,如果某个数字出现次数>=2,记出现次数>=2中最小的数为x,把前面那个x消除,后面的x变成2x。然后一直执行这个操作,直到无法执行,输出最后保留下来的数字,顺序和操作中的不变。 分析:一看到每次消掉最小的x,然后把下标大的x变成2x,就...

weixin_34336292的博客 139

Codeforces 962D Merge Equals ( 模拟 )

题意 : 给出一个序列,然后每次将重复出现的元素进行求和合并(若有多个,则优先取最小的进行合并),若某重复元素有很多,那么取最左边的那两个进行合并且合并后元素位于原来右边元素的位置,例如 3 2 6 2 2 这里 2 是重复元素,取最左边的两个 2 进行一次求和合并,合并后将变成 4 ,且这个 4 的位置位于较右边的 2 的位置,即序列变成 3 6 4 2。进行这样的操作,直到没有元素重...

177

Codeforces 962D Merge Equals(贪心)

题目链接:Merge Equals 题意 给定一个长度为 nnn 的序列,多次扫描这个序列,每次扫描如果找到出现至少两次的数字中值最小的数字,将最左边的数字合并到右边的那个数字中,并将右边的数字用这个数字的两倍代替,如对于序列 [3,4,1,2,2,1,1][3,4,1,2,2,1,1][3,4,1,2,2,1,1],操作步骤如下: [3,4,1,2,2,1,1]→[3,4,2,2...

Dmaxiya 318

[map|priority_q] Merge Equals CodeForces - 962D

http://codeforces.com/problemset/problem/962/D 维护一个数列 不出现重复数字 如果出现把valx2 放到重复出现位置 安输入顺序 7 3 4 1 2 2 1 1 4 3 8 2 1 按样例理解 [3,4,1,2,2,1,1] [3,4,1,2,2,1,1] → [3,4,2,2,2,1] → [3,4,4,2,1] → [3,8,2...

蒟蒻的最后的倔强 441

Codeforces962D Merge Equals(优先队列)

You are given an array of positive integers. While there are at least two equal elements, we will perform the following operation. We choose the smallest value ???? that occurs in the array 2 or more times. Take the first two occurrences of ???? in this ar

tomjobs的博客 412

Codeforces-962D-Merge Equals (模拟+stl)

D. Merge Equalstime limit per test:2 secondsmemory limit per test:256 megabytesinput:standard inputoutput:standard outputYou are given an array of positive integers. While there are at least two equal...

wust_cyh 355

Codeforces 962D Merge Equals (结构体+优先队列)

题目链接 题意:给你一个n表示n个数a[n],这是一个集合群,集合可能含有2个或以上的相同数,我们需要不断对集合从左到右进行操作:对于2个相同的数,将第一个出现的加到第二个上(不一定要相邻,第一个数去掉),问你无限次操作后该集合剩几个数,分别输出它们。 解法:(第一次看到就想到使用优先队列不递减的顺序进行判断与合并可以得到最终题目要的目标集合个数和元素,可是一时间脑残没想到怎么标记下标进行移动...

Fushicho_XF的博客 318

codeforces 962D. Merge Equals(STL)

                                                                                                D. Merge Equals time limit per test 2 seconds memory limit per test 256 megabytes input standard i...

Amove 328
上一篇: codeforces 962 C. Make a Square
下一篇: D.Triple Nim(打表+找规律)
Whowell
博客等级 码龄9年 55粉丝 354原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值