A13275 | Drazil Likes Heap
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
Drazil likes heap very much. So he created a problem with heap:
There is a max heap with a height $h$ implemented on the array. The details of this heap are the following:
This heap contains exactly $2^h - 1$ distinct positive non-zero integers. All integers are distinct. These numbers are stored in the array $a$ indexed from $1$ to $2^h-1$ . For any $1 < i < 2^h$ , $a[i] < a[\left \lfloor{\frac{i}{2}}\right \rfloor]$ .
Now we want to reduce the height of this heap such that the height becomes $g$ with exactly $2^g-1$ numbers in heap. To reduce the height, we should perform the following action $2^h-2^g$ times:
Choose an index $i$ , which contains an element and call the following function $f$ in index $i$ :

Note that we suppose that if $a[i]=0$ , then index $i$ don't contain an element.
After all operations, the remaining $2^g-1$ element must be located in indices from $1$ to $2^g-1$ . Now Drazil wonders what's the minimum possible sum of the remaining $2^g-1$ elements. Please find this sum and find a sequence of the function calls to achieve this value.
There is a max heap with a height $h$ implemented on the array. The details of this heap are the following:
This heap contains exactly $2^h - 1$ distinct positive non-zero integers. All integers are distinct. These numbers are stored in the array $a$ indexed from $1$ to $2^h-1$ . For any $1 < i < 2^h$ , $a[i] < a[\left \lfloor{\frac{i}{2}}\right \rfloor]$ .
Now we want to reduce the height of this heap such that the height becomes $g$ with exactly $2^g-1$ numbers in heap. To reduce the height, we should perform the following action $2^h-2^g$ times:
Choose an index $i$ , which contains an element and call the following function $f$ in index $i$ :

Note that we suppose that if $a[i]=0$ , then index $i$ don't contain an element.
After all operations, the remaining $2^g-1$ element must be located in indices from $1$ to $2^g-1$ . Now Drazil wonders what's the minimum possible sum of the remaining $2^g-1$ elements. Please find this sum and find a sequence of the function calls to achieve this value.
输入格式
The first line of the input contains an integer $t$ ( $1 \leq t \leq 70\,000$ ): the number of test cases.
Each test case contain two lines. The first line contains two integers $h$ and $g$ ( $1 \leq g < h \leq 20$ ). The second line contains $n = 2^h-1$ distinct positive integers $a[1], a[2], \ldots, a[n]$ ( $1 \leq a[i] < 2^{20}$ ). For all $i$ from $2$ to $2^h - 1$ , $a[i] < a[\left \lfloor{\frac{i}{2}}\right \rfloor]$ .
The total sum of $n$ is less than $2^{20}$ .
Each test case contain two lines. The first line contains two integers $h$ and $g$ ( $1 \leq g < h \leq 20$ ). The second line contains $n = 2^h-1$ distinct positive integers $a[1], a[2], \ldots, a[n]$ ( $1 \leq a[i] < 2^{20}$ ). For all $i$ from $2$ to $2^h - 1$ , $a[i] < a[\left \lfloor{\frac{i}{2}}\right \rfloor]$ .
The total sum of $n$ is less than $2^{20}$ .
输出格式
For each test case, print two lines.
The first line should contain one integer denoting the minimum sum after reducing the height of heap to $g$ . The second line should contain $2^h - 2^g$ integers $v_1, v_2, \ldots, v_{2^h-2^g}$ . In $i$ -th operation $f(v_i)$ should be called.
The first line should contain one integer denoting the minimum sum after reducing the height of heap to $g$ . The second line should contain $2^h - 2^g$ integers $v_1, v_2, \ldots, v_{2^h-2^g}$ . In $i$ -th operation $f(v_i)$ should be called.
输入输出样例
输入 #1
2 3 2 7 6 3 5 4 2 1 3 2 7 6 5 4 3 2 1
输出 #1
10 3 2 3 1 8 2 1 3 1
暂无题解
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted