hdu5444 Elven Postman 二叉树建树
来源:互联网 发布:网络大电影众筹平台 编辑:程序博客网 时间:2024/06/15 18:34
//给一颗二叉树 , 这颗树是从左到右编号的 , 问 //给出一个树的序列,问从根节点到每一个节点的 //路线 , 向左走是'E' , 向右走是'W' #include<cstdio> #include<cstring> #include<iostream> using namespace std ; const int maxn = 1010 ; char ans[maxn][maxn] ; char a[maxn] ; int len[maxn] ; int edge[maxn][2] ; void dfs(int u , int pre , int num , int step) { if(!pre) a[step] = 'E' ; else a[step] = 'W' ; if(!edge[u][pre]) { edge[u][pre] = num ; memcpy(ans[num] , a , sizeof(a)) ; len[num] = step ; return ; } if(edge[u][pre] > num) dfs(edge[u][pre] , 0 , num , step+1) ; else dfs(edge[u][pre] , 1 , num , step+1) ; } int main() { // freopen("in.txt" , "r" , stdin) ; int t ; scanf("%d" , &t) ; while(t--) { int n; scanf("%d" , &n) ; memset(edge , 0 , sizeof(edge)) ; int tmp ; int root ; scanf("%d" , &root); len[root] = -1 ; for(int i = 2;i <= n;i++) { scanf("%d" , &tmp) ; dfs(root , tmp > root , tmp , 0) ; } int q ; scanf("%d" , &q) ; while(q--) { scanf("%d" , &tmp) ; for(int i = 0 ;i <= len[tmp];i++) printf("%c" , ans[tmp][i]) ; puts("") ; } } }
0 0
- hdu5444 Elven Postman 二叉树建树
- hdu5444 Elven Postman(二叉树遍历)
- hdu5444 Elven Postman 二叉树遍历
- HDU5444-二叉树模拟-Elven Postman
- hdu5444-Elven Postman-最最朴素的二叉搜索树
- 2015网络赛&HDU5444 Elven Postman - 排序二叉树
- HDU5444 Elven Postman(搜索二叉树模板)
- HDU5444 - Elven Postman (树的遍历)
- DFS hdu5444 Elven Postman
- hdu5444 Elven Postman
- hdu5444 Elven Postman
- hdu5444 Elven Postman(SBT)
- HDU 5444 Elven Postman (二叉树)
- hdu 5444 Elven Postman(二叉树)
- hdu 5444 Elven Postman(搜索二叉树)
- HDU 5444 Elven Postman(重建二叉树)
- hdu 5444 Elven Postman(二叉搜索树)
- 【HDU 5444 Elven Postman】+ 二叉树
- hdu5128The E-pang Palace dfs暴力
- SINGLE NUMBER I & II & III
- C++面试题
- 看《暗杀》全智贤 去杀人都能美成神
- iOS国际化---跟随系统语言
- hdu5444 Elven Postman 二叉树建树
- CodeVS1394 数字串
- java__io__序列流(合并MP3)和对象序列化
- Android 绘图基础:Bitmap(位图)与Matrix(矩阵)实现图片5种操作(平移、旋转、错切、缩放、对称)
- ubuntu kylin上部署hadoop源码环境
- 自定义View3 仿联系人A-Z选择效果
- 0916_vbs加密与远程登录融合
- Android自定义控件打包,方便项目上使用
- 关于编程中人脑复杂度的设想,源于命名规则的对象细致化