news 2026/4/16 20:02:59

小红的二叉树【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小红的二叉树【牛客tracker 每日一题】

小红的二叉树

时间限制:1秒 空间限制:1024M

知识点:数论

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

小红想知道,深度为n nn的满二叉树[1][1]有多少条长度为2 22的简单路径[ 2 ] [2][2]?由于答案可能很大,请将答案对( 10 9 + 7 ) (10^9+7)(109+7)取模后输出。
在本题中,两条简单路径所包含的点集不同时,被视为不同的。例如,路径u − v u−vuv与路径v − u v−uvu被视为相同的,因为它们均包含点u uu与点v vv

一棵深度为h hh的满二叉树[ 1 ] [1][1]由恰好2 h − 1 2h−12h1个节点组成,每一个节点要么是叶子节点,要么有2 22个儿子,并且全部叶子节点的深度均为h hh
简单路径[ 2 ] [2][2]是指这样一条路径,其经过的顶点和边互不相同。

输入描述:

在一行上输入一个正整数n ( 1 ≦ n ≦ 10 4 ) n(1≦n≦10^4)n(1n104)代表满二叉树的深度。

输出描述:

输出一个整数,代表深度为n nn的满二叉树中,长度为2 22的简单路径的数量。由于答案可能很大,请将答案对( 10 9 + 7 ) (10^9+7)(109+7)取模后输出。

示例1

输入:

1

输出:

0

说明:

在这个样例中,深度为1 11的满二叉树只有1 11个节点,所以没有长度为2 22的简单路径。

示例2

输入:

3

输出:

7

说明:

在这个样例中,所给出的满二叉树如下图所示:

解题思路

本题通过递推公式+满二叉树结构分析求解长度为2 22的简单路径数,核心是推导路径数的递推规律:深度为1 11的满二叉树仅1 11个节点,路径数为0 00;深度为2 22时仅1 11条路径;深度≥ 3 ≥33时,设r e s resres为当前层可产生新路径的节点数(初始为2 22),每增加一层,新增路径数为r e s × 3 res×3res×3(满二叉树每个中间节点可衍生3 33条新的长度为2的路径),总路径数a n s ansans累加该值,同时r e s resres翻倍(满二叉树每层节点数呈2 22倍增长);遍历计算至目标深度n nn,所有操作对1 e 9 + 7 1e9+71e9+7取模。该递推方法时间复杂度为O ( n ) O(n)O(n),无冗余计算,完美适配n ≤ 1 e 4 n≤1e4n1e4的规模,精准统计深度为n nn的满二叉树中长度为2 22的简单路径总数。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=1e6+10;intmain(){ll n;cin>>n;if(n==1)cout<<0;elseif(n==2)cout<<1;else{ll res=2,ans=1;for(inti=3;i<=n;i++){ans=(ans+res*3)%p;res=(res*2)%p;}cout<<ans%p;}return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 13:43:57

标签与过滤器的动态交互

在网页设计中,如何通过点击标签来动态改变页面元素的状态是一个常见但有趣的问题。今天我们将探讨如何利用jQuery实现一个简单的标签点击效果,使得当标签被激活时,相关的过滤器会改变颜色,并在标签失活时恢复原状。 背景介绍 假设我们有一个博客系统,其中有多个标签(ta…

作者头像 李华
网站建设 2026/4/16 13:41:19

Corpay Cross-Border延长与澳大利亚橄榄球协会的独家合作关系

提供跨境支付和外汇风险管理解决方案全球领先的企业支付公司Corpay, Inc.* (NYSE: CPAY)今日宣布&#xff0c;其跨境业务已签署多年协议&#xff0c;延长与澳大利亚橄榄球协会成功且独家的合作关系&#xff0c;继续担任官方外汇(FX)支付合作伙伴。作为此次延长协议的一部分&…

作者头像 李华
网站建设 2026/4/16 4:42:36

零基础玩转Janus-Pro-7B:手把手教你实现文生图与图像分析

零基础玩转Janus-Pro-7B&#xff1a;手把手教你实现文生图与图像分析 1. 这个模型到底能做什么&#xff1f;先看真实效果 你可能已经听说过“多模态”这个词&#xff0c;但Janus-Pro-7B不是概念炒作&#xff0c;而是一个真正能把文字和图片打通的实用工具。它不像有些模型只能…

作者头像 李华
网站建设 2026/4/16 12:21:16

OFA图像描述模型Docker部署教程:从安装到API调用

OFA图像描述模型Docker部署教程&#xff1a;从安装到API调用 1. 引言 你是否曾经遇到过这样的场景&#xff1a;需要为大量图片自动生成文字描述&#xff0c;但手动标注既耗时又费力&#xff1f;或者想要为视障人士开发一个图像识别辅助工具&#xff0c;却不知道从何入手&…

作者头像 李华
网站建设 2026/4/16 14:02:41

OFA图像语义蕴含模型实战教程:与CLIP/ViLT模型效果对比评测指南

OFA图像语义蕴含模型实战教程&#xff1a;与CLIP/ViLT模型效果对比评测指南 1. 镜像简介与环境配置 今天我们来深入体验OFA图像语义蕴含模型的强大能力&#xff0c;并通过实际对比测试看看它在多模态理解任务中的表现。这个镜像已经为你准备好了完整的环境&#xff0c;基于Li…

作者头像 李华
网站建设 2026/4/16 12:28:55

从入门到精通:Nano-Banana服饰拆解全攻略

从入门到精通&#xff1a;Nano-Banana服饰拆解全攻略 让每一件衣服都像棉花糖一样展开&#xff0c;变成整齐可爱的零件布局&#xff01; 1. 什么是Nano-Banana软萌拆拆屋&#xff1f; Nano-Banana软萌拆拆屋是一个基于AI技术的服饰拆解工具&#xff0c;它能够将复杂的服装变成…

作者头像 李华