ZOJ 3965 Binary Tree Restoring
Binary Tree Restoring
思路:
递归
比较a序列和b序列中表示同一个子树的一段区间,不断递归
代码:
#include<bits/stdc++.h> using namespace std; #define LL long long #define pb push_back #define mem(a,b) memset(a,b,sizeof(a))const int N=1e5+5; int a[N],b[N],par[N],posa[N],posb[N],sum[N],n; void dfs(int l,int r,int ll,int rr,int pa){if(l>r||ll>rr||r>n||rr>n)return ;if(a[l]==b[ll]){par[a[l]]=pa;sum[pa]++;dfs(l+1,r,ll+1,rr,a[l]);}else{par[a[l]]=par[b[ll]]=pa;sum[pa]+=2;int len1=posa[b[ll]]-l;int len2=posb[a[l]]-ll;dfs(l+1,l+len1-1,posb[a[l]]+1,posb[a[l]]+len1-1,a[l]);dfs(posa[b[ll]]+1,posa[b[ll]]+len2-1,ll+1,ll+len2-1,b[ll]);while(sum[pa]==2)pa=par[pa];dfs(l+len1+len2,r,ll+len1+len2,rr,pa);} } int main(){int T;scanf("%d",&T);while(T--){scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]),posa[a[i]]=i;for(int i=1;i<=n;i++)scanf("%d",&b[i]),posb[b[i]]=i;mem(sum,0);dfs(1,n,1,n,0);for(int i=1;i<=n;i++)printf("%d%c",par[i]," \n"[i==n]);}return 0; }
转载于:https://www.cnblogs.com/widsom/p/8559158.html
ZOJ 3965 Binary Tree Restoring相关推荐
- 107. Binary Tree Level Order Traversal II
题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...
- 102. Binary Tree Level Order Traversal
题目 Binary Tree Level Order Traversal 层次遍历二叉树 链接 Given a binary tree, return the level order traversa ...
- [Java]LeetCode297. 二叉树的序列化与反序列化 | Serialize and Deserialize Binary Tree
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- LeetCode刷题记录14——257. Binary Tree Paths(easy)
LeetCode刷题记录14--257. Binary Tree Paths(easy) 目录 前言 题目 语言 思路 源码 后记 前言 数据结构感觉理论简单,实践起来很困难. 题目 给定一个二叉树, ...
- 二叉树的路径(根节点到叶节点)Binary Tree Paths
为什么80%的码农都做不了架构师?>>> 问题: Given a binary tree, return all root-to-leaf paths. For example ...
- LeetCode - Maximum Depth of Binary Tree
递归求二叉树的最大深度. /*** Definition for binary tree* public class TreeNode {* int val;* TreeNode left;* Tre ...
- Balanced Binary Tree leetcode java
题目: Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bin ...
- [leetcode] Binary Tree Preorder Traversal
Given a binary tree, return the preorder traversal of its nodes' values. For example: Given binary t ...
- PAT(甲级)2019年春季考试 7-4 Structure of a Binary Tree
目录 整体思路 犯的错误 代码 整体思路 1.先根据后序和中序序列建树,老生常谈,记得返回root 2.对树进行BFS,在这个过程中用hash的方式记录下每个值对应的父节点.左孩子.右孩子的值,记录下 ...
最新文章
- CUDA运行时Runtime(三)
- 关于dns域名轮询监控的疑问
- 年度回顾:2018年的AI/ML惊喜及预测19年的走势(一)...
- Python实现计数排序
- 腾讯开源大规模X光预训练模型及代码 |MICCAI 2020
- 【numpy】使用numpy/pytorch创建数组时的一点疑问
- 3.2 为超参数选择合适的范围
- html 自定义标签 seo,wordpress深层seo优化:自定义栏目和tag标签页面title标题
- 什么是Bootstrap?
- Linux双网卡bonding举例
- 网络是怎样连接的学习笔记1----探索浏览器内部(十分适合理清思路)
- Python基于cq-http协议端,使用nonebot2框架制作属于自己的智能机器人
- 51单片机智能小车寻循迹代码
- 魅族16支持html吗,魅族16功能有哪些
- 伯禹公益AI《动手学深度学习PyTorch版》Task 07 学习笔记
- 异地多活(异地双活)实践经验
- *【华为机试真题详解】判断字符串子序列**
- 杂记-----------
- 数据挖掘学习——第一周周报
- Life feelings--14--2020永恒的记忆-2021你好
热门文章
- 液晶弹性自由能计算_自由能方法应用(一)开放计算平台BRIDGE的介绍及使用案例...
- win10图标变白纸_超详细的纯净版win10安装教程,手把手教你学会,小白秒变大神!...
- java编程东西好多记不住_课程总结
- html把div分成两栏,div+css制作上中下,中间两列的全屏自适应布局
- java webengine_如何以Java实现网页截图技术
- java map null吗_Java: Map里面的键和值可以为空吗?
- c++服务器开源项目,开源一个c++ lua服务器框架
- 漏磁用MATLAB,管道漏磁内检测数据可视化技术研究
- 计算机 课题学科代码,学科分类与代码表课题.doc
- 鸿蒙os首批适配机型,鸿蒙OS正式版首批名单曝光,适配速度让人意外,8款机型恭喜了...