#z52. LCA客观题

LCA客观题

在LCA问题中,“最近公共祖先”的定义是

{{ select(1) }}

  • [离根节点最远的共同祖先]
  • [离根节点最近的共同祖先]
  • [离查询节点最远的共同祖先]
  • [离查询节点最近的共同祖先]

朴素算法求解LCA的思路是

{{ select(2) }}

  • [直接遍历整棵树]
  • [让深节点先爬到同层,再共同爬升]
  • [使用哈希表存储祖先路径]
  • [利用二叉搜索特性]

倍增法中fa[u][i]的含义是

{{ select(3) }}

  • [u的第(2^i)级祖先]
  • [u的第(i)级祖先]
  • [u的第(i^2)级祖先]
  • [u的子节点中深度为(i)的节点]

搭建倍增表的递推公式是

{{ select(4) }}

  • [fa[u][i] = fa[u][i-1]]
  • [fa[u][i] = fa[fa[u][i+1]][i+1]]
  • [fa[u][i] = fa[fa[u][i-1]][i-1]]
  • [fa[u][i] = fa[fa[u][i+1]][i-1]]

以下关于depth数组的说法正确的是

{{ select(5) }}

  • [depth[u]表示u的子节点数量]
  • [depth[u]表示u到根节点的边数]
  • [depth[u]表示u的层级(辈分)]
  • [B和C都正确]

在班级小组祖先系统示例代码中,计算深度的语句是

{{ select(6) }}

  • [depth[i] = depth[fa[i]] - 1]
  • [depth[i] = depth[fa[i]] + 1]
  • [depth[i] = fa[i]]
  • [depth[i] = i]

朴素算法的时间复杂度为O(n),倍增法的时间复杂度为O(log n)

{{ select(7) }}

  • [正确]
  • [错误]
  • []
  • []

在倍增法中,fa[u][0]表示u的祖父节点

{{ select(8) }}

  • [正确]
  • [错误]
  • []
  • []

求解LCA时,必须先将浅节点提升至深节点的深度,再共同爬升

{{ select(9) }}

  • [正确]
  • [错误]
  • []
  • []