$P5018 对称二叉树$
一直忘记给这个题写题解了。
这题挺水的吧。
挺后悔当时没写出来。
#ifdef Dubug
#endif
#include <bits/stdc++.h>
using namespace std;
typedef long long LL ;
inline LL In() { LL res(0),f(1); register char c ;
	while(isspace(c=getchar())) ; c == '-'? f = -1 , c = getchar() : 0 ;
	while(res = (res << 1) + (res << 3) + (c & 15) , isdigit(c=getchar())) ;
	return res * f ;
}
int n ;
const int N = 1e6 + 5 ;
int a[N] ;
int Left[N] , Right[N] ;
int sum = 1 ;
inline bool dfs(int x,int y) {//搜索能否有对称。
	if(x == -1 and y == -1) return 1 ;
	if(x == -1 or y == -1 or a[x] != a[y]) return 0 ;
	sum += 2 ;
	return (dfs(Left[x],Right[y]) and dfs(Left[y],Right[x])) ;
}
signed main() {
	n = In() ;
	for(register int i=1;i<=n;i++) a[i] = In() ;
	for(register int i=1;i<=n;i++) Left[i] = In() , Right[i] = In() ;
	int ans = -0x7f ;
	for(register int i=1;i<=n;i++) {//每个枚举一遍。n个节点。
		sum = 1 ;//初始化
		if(dfs(Left[i],Right[i])) ans = max(ans,sum) ;//如果有对称 那么更新ans
	}
	cout << ans << endl ;
	return 0 ;
}
随机推荐
- python+pyqt5实现24点小游戏
			本文实例为大家分享了python实现24点游戏的具体代码,供大家参考,具体内容如下 描述:一副牌中A.J.Q.K可以当成是1.11.12.13.任意抽取4张牌,用加.减.乘.除(可加括号)把牌面上的数 ... 
- 洛谷 1182 数列分段Section II
			[题解] 最大值最小化,那么一般要联想到二分.二分一个最大值,然后check一下能否分成小于等于m段即可. #include<cstdio> #include<algorithm&g ... 
- [bzoj4241][历史研究] (分块)
			Description IOI国历史研究的第一人——JOI教授,最近获得了一份被认为是古代IOI国的住民写下的日记.JOI教授为了通过这份日记来研究古代IOI国的生活,开始着手调查日记中记载的事件. ... 
- 【Codeforces 1009C】Annoying Present
			[链接] 我是链接,点我呀:) [题意] 题意 [题解] 其实就是让你最后这n个数字的和最大. 加上的x没有关系.因为肯定都是加上n个x 所以直接加上就可以了 主要在于如何选取j 显然我们要找到一个位 ... 
- 使用java操作hbase(单节点)
			1.在运行java代码之前,一定要先启动Hbase,很重要!! cd /home/cx/itcast/hbase-1.2.6/bin ./start-hbase.sh 2.新建一个java项 ... 
- JAVA学习课本内容总结
			二.基本类型 数组 枚举 1.基本类型 逻辑类型 boolean (true/false) 整数类型 byte(8位) short(16) int(32) long(64) 浮点类型 float ... 
- So easy
			Problem Description Small W gets two files. There are n integers in each file. Small W wants to know ... 
- Hero HDU4310 贪心
			When playing DotA with god-like rivals and pig-like team members, you have to face an embarrassing s ... 
- [bzoj 2190][SDOI2008]仪仗队(线性筛欧拉函数)
			题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2190 分析:就是要线性筛出欧拉函数... 直接贴代码了: memset(ans,,sizeof ... 
- Html5离线缓存简介
			一. 什么是manifest 首先manifest是一个后缀名为minifest的文件,在文件中定义那些需要缓存的文件,支持manifest的浏览器,会将按照manifest文件的规则,像文件保存在本 ... 
