A15395 | Masha and a Beautiful Tree
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
The girl named Masha was walking in the forest and found a complete binary tree of height $n$ and a permutation $p$ of length $m=2^n$ .
A complete binary tree of height $n$ is a rooted tree such that every vertex except the leaves has exactly two sons, and the length of the path from the root to any of the leaves is $n$ . The picture below shows the complete binary tree for $n=2$ .
A permutation is an array consisting of $n$ different integers from $1$ to $n$ . For example, \[ $2,3,1,5,4$ \] is a permutation, but \[ $1,2,2$ \] is not ( $2$ occurs twice), and \[ $1,3,4$ \] is also not a permutation ( $n=3$ , but there is $4$ in the array).
Let's enumerate $m$ leaves of this tree from left to right. The leaf with the number $i$ contains the value $p_i$ ( $1 \le i \le m$ ).
For example, if $n = 2$ , $p = [3, 1, 4, 2]$ , the tree will look like this:
Masha considers a tree beautiful if the values in its leaves are ordered from left to right in increasing order.
In one operation, Masha can choose any non-leaf vertex of the tree and swap its left and right sons (along with their subtrees).
For example, if Masha applies this operation to the root of the tree discussed above, it will take the following form:
Help Masha understand if she can make a tree beautiful in a certain number of operations. If she can, then output the minimum number of operations to make the tree beautiful.
A complete binary tree of height $n$ is a rooted tree such that every vertex except the leaves has exactly two sons, and the length of the path from the root to any of the leaves is $n$ . The picture below shows the complete binary tree for $n=2$ .
A permutation is an array consisting of $n$ different integers from $1$ to $n$ . For example, \[ $2,3,1,5,4$ \] is a permutation, but \[ $1,2,2$ \] is not ( $2$ occurs twice), and \[ $1,3,4$ \] is also not a permutation ( $n=3$ , but there is $4$ in the array).
Let's enumerate $m$ leaves of this tree from left to right. The leaf with the number $i$ contains the value $p_i$ ( $1 \le i \le m$ ).
For example, if $n = 2$ , $p = [3, 1, 4, 2]$ , the tree will look like this:
Masha considers a tree beautiful if the values in its leaves are ordered from left to right in increasing order.
In one operation, Masha can choose any non-leaf vertex of the tree and swap its left and right sons (along with their subtrees).
For example, if Masha applies this operation to the root of the tree discussed above, it will take the following form:
Help Masha understand if she can make a tree beautiful in a certain number of operations. If she can, then output the minimum number of operations to make the tree beautiful.
输入格式
The first line contains single integer $t$ ( $1 \le t \le 10^4$ ) — number of test cases.
In each test case, the first line contains an integer $m$ ( $1 \le m \le 262144$ ), which is a power of two — the size of the permutation $p$ .
The second line contains $m$ integers: $p_1, p_2, \dots, p_m$ ( $1 \le p_i \le m$ ) — the permutation $p$ .
It is guaranteed that the sum of $m$ over all test cases does not exceed $3 \cdot 10^5$ .
In each test case, the first line contains an integer $m$ ( $1 \le m \le 262144$ ), which is a power of two — the size of the permutation $p$ .
The second line contains $m$ integers: $p_1, p_2, \dots, p_m$ ( $1 \le p_i \le m$ ) — the permutation $p$ .
It is guaranteed that the sum of $m$ over all test cases does not exceed $3 \cdot 10^5$ .
输出格式
For each test case in a separate line, print the minimum possible number of operations for which Masha will be able to make the tree beautiful or -1, if this is not possible.
输入输出样例
输入 #1
4 8 6 5 7 8 4 3 1 2 4 3 1 4 2 1 1 8 7 8 4 3 1 2 6 5
输出 #1
4 -1 0 -1
Consider the first test.
In the first test case, you can act like this (the vertex to which the operation is applied at the current step is highlighted in purple):
 It can be shown that it is impossible to make a tree beautiful in fewer operations.In the second test case, it can be shown that it is impossible to make a tree beautiful.
In the third test case, the tree is already beautiful.
In the first test case, you can act like this (the vertex to which the operation is applied at the current step is highlighted in purple):
 It can be shown that it is impossible to make a tree beautiful in fewer operations.In the second test case, it can be shown that it is impossible to make a tree beautiful.
In the third test case, the tree is already beautiful.
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted