1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol video solution AI分析

深度优先搜索 - 塔子哥的完整二叉树

一、问题分析

  • 给定一棵 完整二叉树,每个节点要么 没有子节点(叶子),要么 有两个子节点(非叶子)。
  • 叶子节点的权值为 1。
  • 非叶子节点的权值 由其 左右子节点的权值 计算:
    • c[i] = 0 → 加法:权值 = 左子权值 + 右子权值
    • c[i] = 1 → 乘法:权值 = 左子权值 × 右子权值
  • 求 根节点的权值,结果取 模 109+7 10^9 + 7 109+7。

P4329.【深度优先搜索5】塔子哥的完整二叉树

    2000ms Tried: 669 Accepted: 183 Difficulty: 5
    算法与标签>DFS

本题为2023年9月8日百度机考原题

百度机考的介绍点击这里

题目描述

塔子哥有一棵节点数为 nnn 的完整二叉树,对于一个完整二叉树的定义是:要么每个节点有两个子节点,要么每个节点没有子节点。

  • 没有子节点的节点,其权值为 111 。
  • 有两个子节点的节点,其权值为两个儿子节点的权值的运算结果。

每个节点有两种运算,要么为加法,要么为乘法。如下给出一个长度为 nnn 的数组 ccc 。

ci=0c_i=0ci​=0 表示节点 iii 的运算是加法,ci=1c_i=1ci​=1 表示节点 iii 的运算是乘法。

现在,塔子哥问你这个完整二叉树的根节点的权值是多少。

输入描述

第一行,一个正整数 n(1≤n≤105)n(1\leq n\leq 10^5)n(1≤n≤105) 表示完整二叉树中的节点个数。

第二行,n−1n-1n−1 个正整数 p[2,3,...,n]p[2,3,...,n]p[2,3,...,n],p[i](1≤p[i]≤n)p[i](1\leq p[i]\leq n)p[i](1≤p[i]≤n) 表示第 iii 个节点的父节点,111 号节点是根节点。

第三行,nnn 个整数 c[1,2,...,n]c[1,2,...,n]c[1,2,...,n] ,含义如题面描述所示

数据保证形成满足题目描述的二叉完整树。

输出描述

一个整数,表示根节点的值,答案对 109+710^9+7109+7 取模。

样例

输入

3
1 1
1 1 1

输出

1

说明

222 号节点和 333 号节点权值均为 111 ,111 号节点是乘法运算,故 111 号节点的权值为 111 。

开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 2, 250ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?