题型:编程题
能量槽
题目描述
在实验室中,有一个“能量槽”和 n 个待处理的能量块。第i个能量块的能级为ai,其蕴含的能量为2ai。
实验需按顺序执行n次操作,第i次操作流程如下:
(1)将第i个能量块放入堆槽的顶部。
(2)随后启动“自动融合程序”,重复执行以下检查,直到无法继续:
若槽中能量块数量≤1,停止融合。
若顶部第 1 个与第 2 个能量块的能级不同,停止融合。
若顶部两个能量块能级相同,则将它们从槽中移除,并向顶部放入一个能级为原能级 + 1的新能量块,其能量为两者之和。
再次回到检查步骤,继续尝试融合。
求 n 次操作全部完成后,槽中剩余的能量块总数。
输入格式
第一行,一个整数n。
接下来 n 行,每行一个整数 ai。
输出格式
输出 n 次操作结束后槽中剩余能量块的数量。
输入样例#1
7 2 1 1 3 5 3 3
输出样例#1
3
输入样例#2
5 0 0 0 1 2
输出样例#2
4
说明提示:
1≤n≤2×10^5,0≤ai≤10^9,输入均为整数。
限制:
时间限制:1000ms,内存限制:256MiB
更新时间:2026-04-28 09:32:35
|
【知识点】
电子学会C/C++六级
抱歉! 您未登录, 不能查看答案和解析点击登录


