P15801 [GESP202603 六级] 完全二叉树

题解:洛谷 P15801 [GESP202603 六级] 完全二叉树 等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。树中每个结点都对应一棵以其为根的子树。请你求出给定有根树的所有。输出一行,一个整数,表示所有子树中完全二叉树的数量。棵子树中,有多少棵子树是完全二叉树。特别地,如果左儿子不存在则。的左儿子编号和右儿子编号。,表示有根二叉树结点数量。#普及# #DFS-树#本文分享的必刷题目是从。,其左儿子的编号记为。,如果右儿子不存在则。 阅读详情

记录135

#include<bits/stdc++.h> // 引入输入输出流标准库
using namespace std; // 使用标准命名空间std
const int N=1e5+5; // 定义常量N,表示树结点的最大范围

int n; // 定义全局变量n,表示树的结点数量
int l[N],r[N]; // 定义数组l和r,分别存储每个结点的左儿子和右儿子编号
bool is_perfect[N]; // 标记以i为根的子树是否为满二叉树
bool is_complete[N]; // 标记以i为根的子树是否为完全二叉树
int depth[N]; // 记录以i为根的子树的最大深度
int ans=0; // 定义变量ans,用来记录完全二叉树的总数量

// 深度优先搜索(DFS)函数,用于后序遍历树并进行状态转移
void dfs(int u){
    if(u==0){ // 如果当前结点是空结点(编号为0)
        is_perfect[u]=true; // 空节点视为满二叉树(作为递归的基准条件)
        is_complete[u]=false; // 空节点不计入完全二叉树的数量
        depth[u]=0; // 空节点的深度为0
        return; // 直接返回
    }
    
    dfs(l[u]); // 递归处理左儿子
    dfs(r[u]); // 递归处理右儿子
    
    // 计算当前子树的深度(取左右子树最大深度 + 1)
    depth[u]=max(depth[l[u]],depth[r[u]])+1; 
    
    // 情况1:判断当前子树是否为满二叉树
    // 条件:左右子树都是满二叉树,且左右子树深度相同
    if(is_perfect[l[u]]&&is_perfect[r[u]]&&depth[l[u]]==depth[r[u]]){
        is_perfect[u]=true;
        is_complete[u]=true; // 满二叉树一定是完全二叉树
    }
    // 情况2:判断当前子树是否为完全二叉树(左满 + 右完全 + 深度相同)
    else if(is_perfect[l[u]]&&is_complete[r[u]]&&depth[l[u]]==depth[r[u]]){
        is_complete[u]=true;
    }
    // 情况3:判断当前子树是否为完全二叉树(左完全 + 右满 + 左深比右深多1)
    else if(is_complete[l[u]]&&is_perfect[r[u]]&&depth[l[u]]==depth[r[u]]+1){
        is_complete[u]=true;
    }
    
    // 如果以当前结点u为根的子树是完全二叉树,答案加1
    if(is_complete[u]){ 
        ans++; 
    }
}

int main(){ // 主函数入口
    ios::sync_with_stdio(false); // 关闭标准流同步,提升输入输出效率
    cin.tie(0); // 解除cin与cout的绑定,加快读取速度
    
    cin>>n; // 读入树的结点数量n
    for(int i=1;i<=n;i++){ // 循环读入每个结点的左右儿子信息
        cin>>l[i]>>r[i]; // 读入结点i的左儿子和右儿子编号
    }
    
    dfs(1); // 从根结点1开始进行深度优先搜索
    
    cout<<ans<<"\n"; // 输出所有子树中完全二叉树的数量
    return 0; // 程序正常结束
}

题目传送门https://www.luogu.com.cn/problem/P15801


前言

我是一名专注信奥赛(CSP-J/S、NOIP)的教练。

  • 如果你觉得这篇题解对你有帮助,欢迎点击关注我的优快云账号,我会持续更新高质量算法解析。
  • 我深知算法思维的构建远比单纯通过题目更重要,本系列题解不局限于AC代码的堆砌,而是致力于拆解题目背后的逻辑链条与核心知识点
  • 备赛路上若遇瓶颈,欢迎随时评论或私信,我将甄选典型疑难问题,通过视频讲解或撰写专项文章的形式,为你提供深度答疑。

核心解题思路

这道题是一道结合了树形结构性质与动态规划(DP)思想的经典问题。我们需要统计整棵树中所有子树里,有多少棵是“完全二叉树”。

  1. 核心概念辨析:

    • 满二叉树(Perfect Binary Tree):一棵深度为 kk 的二叉树,其所有叶子结点都在第 kk 层,且所有非叶子结点都有两个子结点。满二叉树的结点数一定是 2k−1 。
    • 完全二叉树(Complete Binary Tree):除了最后一层外,其它各层的结点数都达到最大值,且最后一层的结点都连续集中在最左边。
  2. 状态定义与性质利用:
    完全二叉树的定义天然具有递归性质。对于以结点 u 为根的子树,如果它是完全二叉树,必然满足以下三种情况之一:

    • 情况 A(是满二叉树):左子树和右子树都是满二叉树,且左右子树深度相同。
    • 情况 B(左满右完,深度相同):左子树是满二叉树,右子树是完全二叉树,且左右子树深度相同。
    • 情况 C(左完右满,左深右浅):左子树是完全二叉树,右子树是满二叉树,且左子树深度比右子树深度大 1。
  3. 算法设计:
    我们采用后序遍历(DFS),自底向上地计算每个结点的子树信息。对于每个结点 uu ,我们需要维护三个状态:子树深度 depth[u]、是否为满二叉树 is_perfect[u]、是否为完全二叉树 is_complete[u]。根据上述三种情况进行状态转移,并在遍历过程中累加答案。


代码分块详细解释

1. 头文件、常量与全局变量定义

#include<bits/stdc++.h> 
using namespace std; 
const int N=1e5+5; // 定义常量 N,表示树结点的最大范围

int n; // 定义全局变量 n,表示树的结点数量
int l[N], r[N]; // 定义数组 l 和 r,分别存储每个结点的左儿子和右儿子编号
bool is_perfect[N]; // 标记以 i 为根的子树是否为满二叉树
bool is_complete[N]; // 标记以 i 为根的子树是否为完全二叉树
int depth[N]; // 记录以 i 为根的子树的最大深度
int ans=0; // 定义变量 ans,用来记录完全二叉树的总数量
  • 详细分析:这部分定义了树形 DP 所需的核心状态数组。l[N] 和 r[N] 使用数组模拟了二叉树的指针结构,方便通过下标直接访问左右孩子。is_perfect 和 is_complete 两个布尔数组是解题的关键,它们将复杂的树结构判断转化为了简单的状态标记。

2. DFS 递归基(处理空节点)

void dfs(int u){
    if(u==0){ // 如果当前结点是空结点(编号为0)
        is_perfect[u]=true; // 空节点视为满二叉树(作为递归的基准条件)
        is_complete[u]=false; // 空节点不计入完全二叉树的数量
        depth[u]=0; // 空节点的深度为0
        return; // 直接返回
    }
  • 详细分析:这是递归的边界条件。在树形 DP 中,将空节点(u=0)视为深度为 0 的满二叉树是非常精妙的处理。因为满二叉树的定义要求左右子树深度相同,将空节点视为满二叉树,可以使得叶子结点的父节点能够顺利满足“左右子树都是满二叉树且深度相同(都为0)”的条件,从而正确判定叶子结点本身也是一棵满二叉树。

3. 后序遍历与深度计算

    dfs(l[u]); // 递归处理左儿子
    dfs(r[u]); // 递归处理右儿子
    
    // 计算当前子树的深度(取左右子树最大深度 + 1)
    depth[u] = max(depth[l[u]], depth[r[u]]) + 1; 
  • 详细分析:采用后序遍历(先处理子节点,再处理父节点)。在判断当前结点 uu 的性质之前,必须先获取其左右子树的深度和状态。当前子树的深度等于左右子树中较深的那个深度加 1。

4. 核心状态转移(三种情况判定)

    // 情况1:判断当前子树是否为满二叉树
    // 条件:左右子树都是满二叉树,且左右子树深度相同
    if(is_perfect[l[u]] && is_perfect[r[u]] && depth[l[u]] == depth[r[u]]){
        is_perfect[u] = true;
        is_complete[u] = true; // 满二叉树一定是完全二叉树
    }
    // 情况2:判断当前子树是否为完全二叉树(左满 + 右完全 + 深度相同)
    else if(is_perfect[l[u]] && is_complete[r[u]] && depth[l[u]] == depth[r[u]]){
        is_complete[u] = true;
    }
    // 情况3:判断当前子树是否为完全二叉树(左完全 + 右满 + 左深比右深多1)
    else if(is_complete[l[u]] && is_perfect[r[u]] && depth[l[u]] == depth[r[u]] + 1){
        is_complete[u] = true;
    }
    
    // 如果以当前结点 u 为根的子树是完全二叉树,答案加1
    if(is_complete[u]){ 
        ans++; 
    }
}
  • 详细分析:这是整个算法的灵魂。
    • 情况 1:如果左右子树都是满二叉树且深度相同,拼接起来依然是一棵更大的满二叉树。满二叉树是完全二叉树的特例,所以 is_complete 也置为 true。
    • 情况 2:左子树是满的,右子树是完全的,且两者深度相同。这意味着左子树已经填满了,右子树作为完全二叉树,其结点也是靠左排列的。两者拼接后,整体依然满足完全二叉树的定义。
    • 情况 3:左子树是完全的,右子树是满的,且左子树比右子树深 1。这意味着左子树的最后一层(也是整棵树的最后一层)可能有结点,而右子树已经满了(没有最后一层)。这恰好符合完全二叉树“最后一层结点连续集中在最左边”的要求。
    • 打擂累加:只要当前结点被判定为完全二叉树,全局计数器 ans 就加 1。

5. 主函数:建图与启动

int main(){ 
    ios::sync_with_stdio(false); 
    cin.tie(0); 
    
    cin >> n; 
    for(int i = 1; i <= n; i++){ 
        cin >> l[i] >> r[i]; // 读入结点 i 的左儿子和右儿子编号
    }
    
    dfs(1); // 从根结点 1 开始进行深度优先搜索
    
    cout << ans << "\n"; 
    return 0; 
}
  • 详细分析:主函数负责读取每个结点的左右孩子信息,构建出整棵二叉树。随后调用 dfs(1) 从根节点启动递归。由于题目保证结点编号从 1 到 n 且根为 1,这种数组存储方式非常高效。最终输出累加的答案即可。

核心逻辑总结表

代码模块核心变量/操作精炼作用解决的痛点
递归基if(u==0) is_perfect=true将空节点定义为满二叉树简化了叶子结点和单分支结点的状态转移逻辑
状态数组is_perfect, is_complete记录子树的两种二叉树性质将复杂的树形结构判断转化为 O(1) 的布尔状态查询
满二叉树判定is_perfect[l] && is_perfect[r] && 深度相同核心情况 1 的状态转移识别出最基础的满二叉树结构
完全二叉树判定情况 2 和 情况 3 的 else if核心情况 2、3 的状态转移完美契合完全二叉树“最后一层靠左连续排列”的数学定义
后序遍历dfs(l[u]); dfs(r[u]);自底向上计算子树信息确保在判断父节点时,左右子节点的状态已经计算完毕
CCF-GESP编程能力等级认证(C++)2025年9月 二级考试真题 内容概要:本文档为《CCF-GESP编程能力等级认证(C++)2025年9月 二级》考试真题及参考答案,涵盖单选题、判断题和编程题三大类。单选题涉及C++语法基础、程序逻辑分析、数学建模与常见算法思想;判断题考察对C++运算符、控制结构、输入输出处理等细节的理解;两道编程题分别为“优美的数字”和“菱形”,要求考生掌握循环、条件判断、字符串或字符图形处理等基本编程技能,并能正确实现指定逻辑。所有题目均提供标准答案或参考代码,便于学习与自测。; 适合人群:准备参加CCF-GESP C++二级认证的学生,或具备初步C++编程基础、希望提升程序设计与逻辑思维能力的初学者。; 使用场景及目标:①帮助考生熟悉GESP二级考试题型与难度;②通过练习掌握基础算法逻辑、程序调试能力和代码规范书写;③强化对C++核心语法如循环、分支、数组、函数调用等的应用能力。; 阅读建议:建议先独立完成题目后再对照答案分析错误原因,编程题应动手编写并调试代码,深入理解参考程序的实现思路,尤其注意边界条件和逻辑结构的正确性。 立即下载

相关推荐

开关电源补偿设计避坑手册:为什么你的Buck电路总在轻载时振荡?

本文深入剖析了Buck电路在轻载时发生振荡的根本原因,并提供了专业的补偿设计避坑指南。文章指出,轻载下输出滤波器Q值飙升、DCM模式切换导致的小信号模型剧变是主要诱因,并详细对比了Type II与Type III补偿网络在宽负载范围内的表现差异。通过结合LTspice仿真与工程实践,指导工程师如何优化补偿环路设计,确保电源从满载到空载的全程稳定。

hadoop5ranger的博客 676

CCF-GESP计算机学会等级考试2026年3月六级C++T2 完全二叉树

摘要: 题目要求统计给定有根二叉树中所有子树为完全二叉树的数量。完全二叉树的判定条件是:除最后一层外各层结点满,且最后一层靠左排列。通过后序遍历递归处理每个结点,动态判断其子树是否为满二叉树或完全二叉树。满二叉树(所有层结点满且左右子树深度相同)是特殊的完全二叉树。算法维护三个状态数组:w[i]标记完全二叉树,m[i]标记满二叉树,h[i]记录深度。最终统计所有满足条件的子树数。时间复杂度O(n),空间复杂度O(n)。样例验证表明算法正确性。

长春高老师编程 996

FLUENT UDF编译及蒸发冷凝相关问题

蒸发冷凝与相间传质

weixin_48029137的博客 1万+

[GESP202603 六级] 完全二叉树

本文提出了一种高效算法,用于统计有根二叉树中所有完全二叉子树的数量。通过递归遍历,为每个节点记录子树高度、是否为满二叉树和完全二叉树等属性。算法核心在于判断两种合法结构:左子树为满二叉树且右子树为完全二叉树(高度相等),或左子树为完全二叉树且右子树为满二叉树(左高右低1层)。采用后序遍历确保先处理子节点再处理父节点,时间复杂度O(n),适用于大规模数据(n≤1e5)。AC代码已通过洛谷测试,验证了算法的正确性和效率。

whycthe的博客 662

保姆级教程:用Python+OpenCV实现相移法与格雷码三维重建(从生成条纹到点云生成)

本文详细介绍了使用Python和OpenCV实现相移法与格雷码三维重建的全流程,从条纹生成到点云计算。通过结构光技术,结合相移法和格雷码,实现高精度的三维重建,适用于无纹理物体表面的密集对应点生成。教程包含环境搭建、条纹生成、相位计算、三维点云重建及常见问题排查,适合计算机视觉开发者和研究人员。

weixin_33443333的博客 351

ADBC 全面解析:ABAP 开发者玩转 Native SQL 的实战指南

本文介绍了 SAP ABAP 中的 ADBC(ABAP Database Connectivity)技术,它是一种基于 ABAP 面向对象的类库,用于访问 Native SQL 接口。与 Open SQL 和 EXEC SQL 相比,ADBC 具有以下优势:支持特定数据库语法、可访问二级数据库连接、执行多种 SQL 操作且语法更 ABAP 化。文章通过示例展示了 ADBC 的基本用法,包括创建语句对象、执行查询和处理结果集。建议在需要数据库特有功能或二级连接时优先使用 ADBC,同时提供封装类来简化调用。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 309

洛谷P15801 [GESP202603 六级] 完全二叉树题解

标记子树是否为完全二叉树,最终统计。计算每个子树的高度(

suyefwhw的博客 68

【模型实战】MiMo-VL-7B讲解与实战

维度成绩MMMU70.6(图像理解最难测试之一)VideoMME70.8(视频理解标杆)59.4(超越78B参数模型)56.1(超过专用GUI模型)Elo评分开源VLM排名第一(7B~72B)社区热度过去一个月下载超1,600次(RL+SFT)📌一句话概括MiMo-VL 是目前性能最强、推理最稳、体验最佳、生态最全的7B级开源视觉语言模型。

m0_47867638的博客 1199

洛谷P15801 [GESP202603 六级] 完全二叉树

这道题让我们找所有子树里完全二叉树的数量,我们用DFS遍历每个节点就行。首先得明白完全二叉树的特点:要么是满二叉树,要么最后一层左边全满、右边缺几个。所以给每个节点存两个状态,h[u]是子树高度,dp[u]标记子树类型:2代表满二叉树,1代表非满的完全二叉树,0不是完全二叉树。DFS的时候先递归左右孩子,再判断当前节点:叶子节点肯定是满二叉树;只有左孩子且左孩子是满二叉树,那当前是完全二叉树;左孩子比右高一层,得左是完全二叉树且右是满二叉树。输出一行,一个整数,表示所有子树中完全二叉树的数量。

aierxiang的博客 703

基于知识图谱的智能工作流引擎

随着大数据和人工智能技术的快速发展,企业和组织对数据的依赖程度日益增加。为了更好地管理和利用这些数据,知识图谱逐渐成为一种重要的工具。知识图谱不仅能够以结构化的方式表示复杂的知识,而且能够通过推理和查询提供深层次的信息。然而,如何将知识图谱应用于实际业务场景中,尤其是如何构建智能工作流引擎,仍然是一个具有挑战性的问题。智能工作流引擎是一种能够自动化执行复杂业务流程的系统,它可以通过对业务规则和数据的分析,自动生成和优化工作流,从而提高工作效率和准确性。

AI天才研究院 1872

基于libVLC的视频播放器之四:直接使用libVLC

一.效果 播放本地文件 播放网络url:rtsp://3.84.6.190/vod/mp4:BigBuckBunny_115k.mov 二.实现 既然有VLC-Qt,为什么还要直接调用libVLC呢,因为直接调用会加深对整个播放流程的理解,方便后面修改VLC-Qt源码。 注意事项: 1.编译报错:error C2065: “libvlc_media_read_cb”: 未声明的标识符。修改如下: 2.libvlc_new(0, nullptr)返回null 将plugins

草上爬的博客 5049

P15801 [GESP202603 六级] 完全二叉树 题解

完全二叉树除最后一层外,其他层的节点数均达到最大值,且最后一层的节点从左到右连续排列。若最后一层不满,则缺失的节点只能出现在右侧。高度为 ( h ) 的完全二叉树,节点数 ( n ) 满足 ( 2^{h-1} \leq n < 2^h )。编号为 ( i ) 的节点,其左子节点编号为 ( 2i ),右子节点为 ( 2i+1 )(假设根节点编号为 1)。满二叉树每一层的节点数均达到最大值,即所有非叶子节点均有左右子节点。

xvhao2013的博客 1070

《中国电信运营商骨干网:历史、现状与未来演进》系列 第一篇:中国骨干网全景图:一级运营商与专用网络的演进

揭秘国家信息高速公路!一文读懂什么是骨干网,它如何支撑我们的数字生活,以及电信、联通、移动、广电等巨头如何构建这张“国家级动脉”。

maqh_csdn的博客 2037

【GESP】C++六级真题 luogu-P15801, [GESP202603 六级] 完全二叉树

2026年3月,GESP六级真题,考察二叉树(完全二叉树的判定),难度⭐⭐⭐☆☆。普及/提高−。

CoderCoding的博客 486

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

题解:P15801 [GESP202603 六级] 完全二叉树

else if(a[u].l && a[u].r == 0 && 从a[u].l往下最多深度 == 这棵树的深度 + 1)dp[i] = 1;对于结点 i,其左儿子的编号记为 li​,右儿子编号记为 ri​。接下来 n 行,每行两个正整数 li​,ri​,表示结点 i 的左儿子编号和右儿子编号。dp[i] 表示 以i为根的二叉树是什么种类的二叉树。dp[i] = 0 表示以i为根的二叉树是普通二叉树。dp[i] = 1 表示以i为根的二叉树是完全二叉树。dp[i] = 2 表示以i为根的二叉树是满二叉树。

EricWuBoTao的博客 88

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

《P15801 [GESP202603 六级] 完全二叉树》

题目摘要 给定一棵n个节点的有根二叉树(根为1),要求统计所有子树中完全二叉树的数量。完全二叉树的定义是:除了最后一层外,每一层都完全填满,且最后一层的节点都靠左排列。 输入格式: 第一行:整数n(1≤n≤10^5) 接下来n行:每行给出节点i的左右子节点编号(0表示不存在) 输出格式:满足条件的子树数量 示例1: 输入: 4 2 3 4 0 0 0 0 0 输出:4(所有子树都是完全二叉树) 示例2: 输入: 4 2 3 0 4 0 0 0 0 输出:3(除根节点外) 解决思路:需要递归检查每个子树是否满

Jasmine_llq的博客 227

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

P15801 [GESP202603 六级] 完全二叉树(只有80分)

核心就是求dp[u]就是通过递归来取得dp的值,对每个节点都执行一遍树形dp最后统计结果输出答案

zwtmjj的博客 69

P15802 [GESP202603 七级] 拆分

本文汇总了GESP202603各级别编程真题资源,包括七级题目《拆分》和《物流网络》的多平台解析视频(B站、知乎),以及一级至六级各类编程题(如《交朋友》《数数》《凯撒密码》《有限不循环小数》等)的题目链接和部分优快云博客解析。内容涵盖C++真题讲解、算法实现与解题思路,适合备考GESP等级考试的学习者参考。(149字)

青少年趣味编程 617

P15805 [GESP202603 八级] 子图最短路

本文汇总了2026年3月GESP考级C++各等级真题资源,包含八级真题视频讲解(消息查找、子图最短路等题目)、各级别试题及解析(一至八级)。资源涵盖B站视频教程、优快云博客题解以及洛谷题目链接,涉及一级交朋友、二级数数、三级凯撒密码、四级礼盒排序、五级有限不循环小数、六级完全二叉树、七级物流网络等典型考题,为考生提供全面的备考资料。所有内容均标注原始出处链接,方便学习者查阅详细解析。

青少年趣味编程 594

P15804 [GESP202603 八级] 消息查找

本文整理了2026年3月GESP考级C++各等级真题资源,包括八级的"消息查找"和"子图最短路"(含B站视频讲解、优快云题解和洛谷题目链接),以及一级至七级的各类编程题目(如"交朋友"、"数字替换"、"数数"等)。所有题目均附有洛谷题库链接和详细的优快云解析,为考生提供全面的备考资料。特别是八级题目还配有多个视频讲解,涵盖算法实现思路和解题技巧。

青少年趣味编程 823

GESP认证C++编程真题解析 | 202603 六级

取第 i 个房子,结果为 dp[i-2] + nums[i],这意味着跳过第 i-1 个房子,直接在前 i-2 个房子的最优解基础上加上第 i 个房子的糖果数。某二叉树共有10个结点,记为A~J,已知它的先序遍历序列为:A B D H I E C F J G,中序遍历序列为:H D I B E A F J C G,则该二叉树的后序遍历序列是( )。在二叉搜索树(BST)中,若中序遍历的序列为{1, 2, 3, 4, 5},且先序遍历的第一个序列元素为3,则下列说法正确的是( )。子节点入栈是先右后左。

团爸讲算法 697
上一篇: P14919 [GESP202512 六级] 路径覆盖
下一篇: P1014 [NOIP 1999 普及组] Cantor 表
谢天谢地AC了 | 信奥教练
博客等级 码龄1年 53粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值