Tree V
题解
讨论
查看他人的提交
题号:NC207264
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld
题目描述
系统中有一棵n个点的完全二叉树,现给出它的DFS正序遍历序列
(即从根节点开始,先遍历左子树,后遍历右子树),请你还原这棵树,并返回加密后的答案。
答案加密方法:所有边两个端点异或的和,即
,其中
为一条树上的边。
完全二叉树:
若设二叉树的深度为k,除第 k 层外,其它各层 (1~k-1) 的结点数都达到最大个数,第k 层所有的结点都
连续集中在最左边。
样例构成的完全二叉树为:
示例1
输入
复制
[1,2,3,4,5]
[1,2,3,4,5]
返回值
复制
14
14
说明
树边为(1, 2), (1, 5), (2, 3), (2, 4),加密过程为(1^2)+(1^5)+(2^3)+(2^4),答案为14。
备注:
数据满足:
Tree V
返回全部题目
列表加载中...
import java.util.*; public class Solution { /** * * @param a int整型一维数组 表示这棵完全二叉树的Dfs遍历序列的结点编号 * @return long长整型 */ public long tree5 (int[] a) { // write code here } }
class Solution { public: /** * * @param a int整型vector 表示这棵完全二叉树的Dfs遍历序列的结点编号 * @return long长整型 */ long long tree5(vector
& a) { // write code here } };
# # # @param a int整型一维数组 表示这棵完全二叉树的Dfs遍历序列的结点编号 # @return long长整型 # class Solution: def tree5(self , a ): # write code here
/** * * @param a int整型一维数组 表示这棵完全二叉树的Dfs遍历序列的结点编号 * @return long长整型 */ function tree5( a ) { // write code here } module.exports = { tree5 : tree5 };
# # # @param a int整型一维数组 表示这棵完全二叉树的Dfs遍历序列的结点编号 # @return long长整型 # class Solution: def tree5(self , a ): # write code here
package main /** * * @param a int整型一维数组 表示这棵完全二叉树的Dfs遍历序列的结点编号 * @return long长整型 */ func tree5( a []int ) int64 { // write code here }
/** * * @param a int整型一维数组 表示这棵完全二叉树的Dfs遍历序列的结点编号 * @param aLen int a数组长度 * @return long长整型 */ long long tree5(int* a, int aLen ) { // write code here }
[1,2,3,4,5]
14