【洛谷P5018 对称二叉树】








话说这图也太大了吧
这题十分的简单,我们可以用两个指针指向左右两个对称的东西,然后比较就行了
复杂度O(n*logn)
#include<bits/stdc++.h>
using namespace std;
inline int read()
{
int X=,w=;
char c=getchar();
while(c<''||c>'')
{
if (c=='-')
{
w=-;
}
c=getchar();
}
while(c>=''&&c<='')
{
X=(X<<)+(X<<)+c-'';
c=getchar();
}
return X*w;
}
inline void out(int n)
{
if(n<)
{
putchar('-');
n=-n;
}
if(n>=)
{
out(n/);
}
putchar(n%+'');
}
int n,son[][],val[],size[];
//son[i][0]为i的左儿子
//son[i][1]为i的右儿子
inline void dfs(int u)
{
size[u]=;
if(son[u][]!=-
)
{
dfs(son[u][]);
size[u]+=size[son[u][]];
}
if(son[u][]!=-)
{
dfs(son[u][]);
size[u]+=size[son[u][]];
}
}
inline bool check(int u,int v)
{
if(u==-&&v==-)
{
return true;
}
if(u!=-&&v!=-&&val[u]==val[v]&&check(son[u][],son[v][])&&check(son[u][],son[v][]))
{
return true;
}
return false;
}
int main()
{
n=read();
for(int i=;i<=n;i++)
{
val[i]=read();
}
for(int i=;i<=n;i++)
{
son[i][]=read();
son[i][]=read();
}
dfs();
int ans=;
for(int i=;i<=n;i++)
{
if(check(son[i][],son[i][]))
{
ans=max(ans,size[i]);
}
}
out(ans);
puts("");
return ;
}
【洛谷P5018 对称二叉树】的更多相关文章
- 洛谷P5018 对称二叉树——hash
给一手链接 https://www.luogu.com.cn/problem/P5018 这道题其实就是用hash水过去的,我们维护两个hash 一个是先左子树后右子树的h1 一个是先右子树后左子树的 ...
- 洛谷P5018 对称二叉树
不多扯题目 直接题解= = 1.递归 由题目可以得知,子树既可以是根节点和叶节点组成,也可以是一个节点,题意中的对称二叉子树是必须由一个根节点一直到树的最底部所组成的树. 这样一来就简单了,我们很容易 ...
- NOIP2018普及T4暨洛谷P5018 对称二叉树题解
题目链接:https://www.luogu.org/problemnew/show/P5018 花絮:这道题真的比历年的t4都简单的多呀,而且本蒟蒻做得出t4做不出t3呜呜呜... 这道题可以是一只 ...
- 洛谷 P5018 对称二叉树(搜索)
嗯... 题目链接:https://www.luogu.org/problem/P5018 其实这道题直接搜索就可以搜满分: 首先递归把每个点作为根节点的儿子的数量初始化出来,然后看这个节点作为根节点 ...
- 洛谷 P5018 对称二叉树
题目传送门 解题思路: 先计算每个点的子树有多少节点,然后判断每个子树是不是对称的,更新答案. AC代码: #include<iostream> #include<cstdio> ...
- 2021.08.09 P5018 对称二叉树(树形结构)
2021.08.09 P5018 对称二叉树(树形结构) [P5018 NOIP2018 普及组] 对称二叉树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 求一棵子树,关 ...
- 【洛谷P5018】对称二叉树
题目大意:定义对称二叉树为每个节点的左右子树交换后与原二叉树仍同构的二叉树,求给定的二叉树的最大对称二叉子树的大小. 代码如下 #include <bits/stdc++.h> using ...
- 题解 洛谷P5018【对称二叉树】(noip2018T4)
\(noip2018\) \(T4\)题解 其实呢,我是觉得这题比\(T3\)水到不知道哪里去了 毕竟我比较菜,不大会\(dp\) 好了开始讲正事 这题其实考察的其实就是选手对D(大)F(法)S(师) ...
- [洛谷P1040] 加分二叉树
洛谷题目链接:加分二叉树 题目描述 设一个n个节点的二叉树tree的中序遍历为(1,2,3,-,n),其中数字1,2,3,-,n为节点编号.每个节点都有一个分数(均为正整数),记第i个节点的分数为di ...
随机推荐
- P1507NASA食物
这道题是一个01背包的延伸题,只要透彻理解了,就不难了. 这个题有两个T,一个是体积一个是质量,所以这时候我们必须要加一个for了,同时要优化空间(三维降二维),然后用f[j][k]来表示当体积为j, ...
- [Codeforces 1239D]Catowise City(2-SAT)
[Codeforces 1239D]Catowise City(2-SAT) 题面 有n个主人,每个主人都有一只猫.每个主人认识一些猫(包括自己的猫).现在要选出一些人和一些猫,个数均大于0且总共为n ...
- Redux 关系图解
Redux是一款状态管理库,并且提供了react-redux库来与React亲密配合, 但是总是傻傻分不清楚这2者提供的API和相应的关系.这篇文章就来理一理. Redux Redux 三大核心 Re ...
- 【源码解读】pix2pix(一):训练
源码地址:https://github.com/mrzhu-cool/pix2pix-pytorch 相比于朱俊彦的版本,这一版更加简单易读 训练的代码在train.py,开头依然是很多代码的共同三板 ...
- nginx配置反向代理,解决前端开发的跨域问题
适用:开发和生产环境 配置如下 server { listen 10901; server_name res.pre.ices.red; #charset koi8-r; #access_log lo ...
- 使用GET与POST方式获取html数据
抓取网站数据解析的工作,其中,使用到GET和POST方法获取html数据. 使用GET方式: /** * 使用get方式获取html数据 * * @param strURL(需要访问的网站) * @r ...
- 204-基于Xilinx Virtex-6 XC6VLX240T 和TI DSP TMS320C6678的信号处理板
基于Xilinx Virtex-6 XC6VLX240T 和TI DSP TMS320C6678的信号处理板 1.板卡概述 板卡由我公司自主研发,基于VPX架构,主体芯片为两片 TI DSP TMS ...
- PAT Advanced 1031 Hello World for U (20 分)
Given any string of N (≥) characters, you are asked to form the characters into the shape of U. For ...
- CF1151F Sonya and Informatics (计数dp+矩阵优化)
题目地址 Solution (duyi是我们的红太阳) (这里说一句:这题看上去是一个概率dp,鉴于这题的概率dp写法看上去不好写,我们其实可以写一个计数dp) 首先拿到这个题目我们要能设出一个普通d ...
- 微信 PHP - SDK 包
下载 个人公众号谢谢各位老铁支持