题目传送门

解题思路:

先计算每个点的子树有多少节点,然后判断每个子树是不是对称的,更新答案。

AC代码:

 #include<iostream>
#include<cstdio> using namespace std; struct kkk{
int l,r,v,len;
kkk() {l = -;r = -;}
}e[];
int n,ans; bool solve(int ls,int rs) {
bool p = ;
if(e[ls].v != e[rs].v) return false;
if((e[ls].l != - && e[rs].r == -) || (e[ls].l == - && e[rs].r != -) || (e[ls].r == - && e[rs].l != -) || (e[ls].r != - && e[rs].l == -)) return false;
if(e[ls].l != - && e[rs].r != -)
p = p & solve(e[ls].l,e[rs].r);
if(e[ls].r != - && e[rs].l != -)
p = p & solve(e[ls].r,e[rs].l);
return p;
} int dfs(int k) {
e[k].len = ;
if(e[k].l != -)
e[k].len += dfs(e[k].l);
if(e[k].r != -)
e[k].len += dfs(e[k].r);
return e[k].len;
} int main(){
scanf("%d",&n);
for(int i = ;i <= n; i++)
scanf("%d",&e[i].v);
for(int i = ;i <= n; i++)
scanf("%d%d",&e[i].l,&e[i].r);
dfs();
for(int i = ;i <= n; i++)
if(solve(e[i].l,e[i].r))
ans = max(ans,e[i].len);
printf("%d",ans);
return ;
}

//NOIP普及2018 T4

洛谷 P5018 对称二叉树的更多相关文章

  1. 洛谷P5018 对称二叉树——hash

    给一手链接 https://www.luogu.com.cn/problem/P5018 这道题其实就是用hash水过去的,我们维护两个hash 一个是先左子树后右子树的h1 一个是先右子树后左子树的 ...

  2. 洛谷P5018 对称二叉树

    不多扯题目 直接题解= = 1.递归 由题目可以得知,子树既可以是根节点和叶节点组成,也可以是一个节点,题意中的对称二叉子树是必须由一个根节点一直到树的最底部所组成的树. 这样一来就简单了,我们很容易 ...

  3. NOIP2018普及T4暨洛谷P5018 对称二叉树题解

    题目链接:https://www.luogu.org/problemnew/show/P5018 花絮:这道题真的比历年的t4都简单的多呀,而且本蒟蒻做得出t4做不出t3呜呜呜... 这道题可以是一只 ...

  4. 洛谷 P5018 对称二叉树(搜索)

    嗯... 题目链接:https://www.luogu.org/problem/P5018 其实这道题直接搜索就可以搜满分: 首先递归把每个点作为根节点的儿子的数量初始化出来,然后看这个节点作为根节点 ...

  5. 【洛谷P5018 对称二叉树】

    话说这图也太大了吧 这题十分的简单,我们可以用两个指针指向左右两个对称的东西,然后比较就行了 复杂度O(n*logn) #include<bits/stdc++.h> using name ...

  6. 2021.08.09 P5018 对称二叉树(树形结构)

    2021.08.09 P5018 对称二叉树(树形结构) [P5018 NOIP2018 普及组] 对称二叉树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 求一棵子树,关 ...

  7. 【洛谷P5018】对称二叉树

    题目大意:定义对称二叉树为每个节点的左右子树交换后与原二叉树仍同构的二叉树,求给定的二叉树的最大对称二叉子树的大小. 代码如下 #include <bits/stdc++.h> using ...

  8. 题解 洛谷P5018【对称二叉树】(noip2018T4)

    \(noip2018\) \(T4\)题解 其实呢,我是觉得这题比\(T3\)水到不知道哪里去了 毕竟我比较菜,不大会\(dp\) 好了开始讲正事 这题其实考察的其实就是选手对D(大)F(法)S(师) ...

  9. [洛谷P1040] 加分二叉树

    洛谷题目链接:加分二叉树 题目描述 设一个n个节点的二叉树tree的中序遍历为(1,2,3,-,n),其中数字1,2,3,-,n为节点编号.每个节点都有一个分数(均为正整数),记第i个节点的分数为di ...

随机推荐

  1. Elasticsearch 使用集群

    章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...

  2. ACM-Checker Challenge

    题目描述:Checker Challenge  1000(ms)  10000(kb)  20 / 90 Examine the 6x6 checkerboard below and note tha ...

  3. element-ui实现自定义多个文件上传

    这里强调下是:aixos是原始的,不要qs封装过的,不然不识别传值传不过去 <el-upload action="/admin/borrow/borrowEdit" list ...

  4. Linux课后练习(第二章命令)20200218

  5. PHP的变量作用域-常亮-全局变量-表单提交变量

    一.变量的作用域 作用域是指在一个脚本中某个变量在哪些地方可以使用或可见. 内置超级全局变量可以在脚本的任何地方使用和可见. 常量,一旦被声明,将可以在全局可见.也就是说,他们可以在函数内外使用. 在 ...

  6. 【STM32H7教程】第48章 STM32H7的FMC总线应用之是32路高速IO扩展

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第48章       STM32H7的FMC总线应用之是32路 ...

  7. pip2 install protobuf==2.6.1

    [libprotobuf FATAL google/protobuf/stubs/common.cc:61] This program requires version 3.5.0 of the Pr ...

  8. 干货|浅谈iOS端短视频SDK技术实现

    短视频SDK主要包含"视频录制"和"视频编辑"这两个核心功能. 视频录制包括:视频采集.美颜.滤镜.摄像头切换.视音频采集参数设置等功能: 视频编辑包括:视频导 ...

  9. 使用js检测页面是在electron app中运行还是在浏览器中运行

    <script type="text/javascript"> var userAgent = navigator.userAgent.toLowerCase() ){ ...

  10. Vue组件template模板字符串几种写法

    在定义Vue组件时,组件的模板template选项需要的是一个字符串,当其内容较复杂需要换行时,需要简单处理一下,具体有五种方式: 方式一:使用 \ 转义换行符 <!DOCTYPE html&g ...