当前位置: 首页 > news >正文

专业的南昌网站建设重庆装修公司全包价格

专业的南昌网站建设,重庆装修公司全包价格,中国怎么样做跨境网站,共享门店新增礼品卡兑换模式题目 P5018 对称二叉树 https://www.luogu.com.cn/problem/P5018 代码 思路:领接表存储二叉树,unordered_map存储各个节点对应的值。dfs遍历一下各个子树的大小个数,再写个递归判断是否是对称二叉树,如果是就更新全局答案。 #…

题目

P5018 对称二叉树
https://www.luogu.com.cn/problem/P5018

代码

思路:领接表存储二叉树,unordered_map存储各个节点对应的值。dfs遍历一下各个子树的大小个数,再写个递归判断是否是对称二叉树,如果是就更新全局答案。

#include <bits/stdc++.h>
#define endl '\n'using namespace std;const int N = 1e7 + 10;// 对于每个点k,开一个单链表,存储k所有可以走到的点。h[k]存储这个单链表的头结点(也就是邻接表)
int e[N], ne[N], h[N], st1[N], idx;unordered_map<int, int> mp;// 每个结点id对应的值
int max_n = 0; // 最大对称二叉树节点数量// 邻接表初始化
void init() {memset(h, -1, sizeof h);idx = 0;
}// 添加一条边a->b 
void add(int a, int b) {// 存下b的值,b下一个指向a的下一个节点,a的下一个节点指向be[idx] = b, ne[idx] = h[a], h[a] = idx ++;
}//p, q是指针
bool check(int p, int q) {if (mp[e[p]] == 0 && mp[e[q]] == 0) // 递归到结尾返回truereturn true;else if (mp[e[p]] == 0 || mp[e[q]] == 0) // 两个孩子有一个为空返回falsereturn false;else if (mp[e[p]] != mp[e[q]]) // 左孩子和右孩子不相同返回falsereturn false;return check(h[e[p]], ne[h[e[q]]]) && check(ne[h[e[p]]], h[e[q]]); // 左右两颗子树开始递归
}int dfs(int u) {if (mp[u] == 0) // 没有节点,返回0return 0;st1[u] = true;// st[u] 表示点u已经被遍历过int sum = 0;for (int i = h[u]; i != -1 ; i = ne[i]) {int j = e[i];if (st1[j]) continue;// 防止逆向dfsint s = dfs(j);sum += s; // 累加左孩子右孩子节点数}// 检查是不是对称二叉树,并更新答案if (check(h[u], ne[h[u]])) {max_n = max(max_n, sum + 1);}return sum + 1; // 返回当前节点的左孩子右孩子所有结点数+1
}int main() {cin.tie(0), cout.tie(0);init();mp[-1] = 0;int n;cin >> n;// 每个节点存下节点值for (int i = 1; i <= n; i ++) {int v;cin >> v;mp[i] = v;}// 插入左孩子右孩子for (int i = 1; i <= n; i ++) {int l, r;cin >> l >> r;add(i, r);add(i, l);}// 从1开始dfsdfs(1);cout << max_n << endl;return 0;
}
http://www.yayakq.cn/news/30441/

相关文章:

  • 杭州网站的优化成都网站制作沈阳
  • 网页设计与网站建设的区别中文网站站内优化怎么做
  • 做网站的公司那家好网站架构图用什么做
  • 自己做网站网页剧中网页图片下载工具
  • 学校网站后台管理源码十堰seo排名公司
  • 可以做动画的网站都有哪些软件下载外贸跟单的流程
  • wordpress 多站点用户杭州做网站的好公司
  • 常做网站首页的文件名青岛公司网站
  • 佛山做外贸网站哪家好南昌关键词优化平台
  • 郑州市建设局官网seo实战技巧100例
  • 怎么做能上谷歌网站seo比较好的优化方法
  • 网站备案撤销再备案通过网站编辑发稿是怎么做的
  • 网站建设 四川深圳高端网站
  • 网站开发主要流程wordpress打包成app
  • 山西cms建站系统价格河北网站推广公司
  • 网站的站点的管理系统平台软件开发
  • 一个网站锚文本可以做几个刷排名seo
  • 一站式企业网站建设网站建设策划书范文
  • 网站主页设计布局图微信做自己网站
  • 太原建站模板厂家珠海网站建设珠海易推网
  • 电子商务网站建设概括做模型网站赚钱么
  • frontpage做视频网站小购物网站建设
  • 网站开发完整的解决方案有源码怎么在本地网站搭建
  • 网站建设中html模板wordpress支持视频播放器插件
  • 郑州网站优化顾问简述建立网站的步骤
  • 高端网站设计公司排行榜腾讯企业邮箱邮箱
  • 网站开发与软件开发的区别做装修的网站有哪些内容
  • 成都网站seo技术让别人做网站的步骤
  • 有没有免费的网站购物网站一般分几大模块
  • 米业做网站的好处菠菜网站模板