Elven Postman---hdu5444(二叉树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5444
有一个序列,由这个序列可以画出一颗二叉树(每个节点的左边(W)都比它大,右边(E)都比它小),我们每次从树根出发每次向左向右的找到对应的点,求这个过程是怎样的用WE表示;
最近刚好看到了数据结构,可以用用指针做
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<vector>
using namespace std;
#define N 1100
#define INF 0x3f3f3f3f
#define met(a) memset(a, 0, sizeof(a)) struct BST
{
int x;
BST *L, *R;
BST(int m=):x(m)
{
L=NULL;
R=NULL;
};
}a[N], *r; vector<char> path[N];
void Inset(int x)
{
BST *t = r; while(t!=NULL)
{
if(x > t->x)
{
path[x].push_back('W');
if(t->R == NULL)
{
t->R = new BST(x);
break;
}
else
t=t->R;
}
else
{
path[x].push_back('E');
if(t->L == NULL)
{
t->L=new BST(x);
break;
}
else
t=t->L;
}
}
}
int main()
{
int T, n, q, x;
scanf("%d", &T);
while(T--)
{
met(a);
for(int i=; i<N; i++)
path[i].clear();
scanf("%d", &n);
scanf("%d", &x);
r=new BST(x);
for(int i=; i<=n; i++)
{
scanf("%d", &x);
Inset(x);
}
scanf("%d", &q);
while(q--)
{
scanf("%d", &x);
int len=path[x].size();
for(int i=; i<len; i++)
printf("%c", path[x][i]);
printf("\n");
}
}
return ;
}
后来发现由于大小的关系我们可以直接找;
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <string>
#include <vector>
#include <algorithm>
#include <map>
#include <queue>
#include <stack>
#include <math.h> using namespace std; #define met(a, b) memset(a, b, sizeof(a))
#define N 10003
#define INF 0x3f3f3f3f typedef long long LL; int a[N], n; void solve(int x)
{
char s[N];
met(s, );
int k = , Max = , Min = INF;
for(int i=; i<=n; i++)
{
if(x < a[i] && a[i] < Min)
///当这个点比需要找的点小,并且小于之前遇到的最小的那个说明我们要沿着它的E方向找;
{
s[k++] = 'E';
Min = a[i];
}
else if(x > a[i] && a[i] > Max)
///当这个点比需要找的点大,并且大于之前遇到的最大的那个说明我们要沿着它的W方向找;
{
s[k++] = 'W';
Max = a[i];
}
else if(x == a[i])///当找到时输出并结束;
{
printf("%s\n", s);
return;
}
}
} int main()
{
int T;
scanf("%d", &T);
while(T--)
{
met(a, ); scanf("%d", &n);
for(int i=; i<=n; i++)
scanf("%d", &a[i]); int m; scanf("%d", &m);
for(int i=; i<=m; i++)
{
int x;
scanf("%d", &x);
solve(x);
}
}
return ;
}
Elven Postman---hdu5444(二叉树)的更多相关文章
- Elven Postman(二叉树)
Elven Postman Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- hdu 5444 Elven Postman(二叉树)——2015 ACM/ICPC Asia Regional Changchun Online
Problem Description Elves are very peculiar creatures. As we all know, they can live for a very long ...
- HDU 5444 Elven Postman (二叉树,暴力搜索)
题意:给出一颗二叉树的先序遍历,默认的中序遍历是1..2.……n.给出q个询问,询问从根节点出发到某个点的路径. 析:本来以为是要建树的,一想,原来不用,其实它给的数是按顺序给的,只要搜结点就行,从根 ...
- hdu 5444 Elven Postman 二叉树
Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Problem Descrip ...
- (二叉树)Elven Postman -- HDU -- 54444(2015 ACM/ICPC Asia Regional Changchun Online)
http://acm.hdu.edu.cn/showproblem.php?pid=5444 Elven Postman Time Limit: 1500/1000 MS (Java/Others) ...
- hdu 5444 Elven Postman
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5444 Elven Postman Description Elves are very peculia ...
- 2015 ACM/ICPC Asia Regional Changchun Online HDU 5444 Elven Postman【二叉排序树的建树和遍历查找】
Elven Postman Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- hdu 5444 Elven Postman(长春网路赛——平衡二叉树遍历)
题目链接:pid=5444http://">http://acm.hdu.edu.cn/showproblem.php?pid=5444 Elven Postman Time Limi ...
- Elven Postman(BST )
Elven Postman Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- Hdu 5444 Elven Postman dfs
Elven Postman Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid= ...
随机推荐
- FreeRTOS 系统时钟节拍和时间管理
以下转载自安富莱电子: http://forum.armfly.com/forum.php FreeRTOS 的时钟节拍任何操作系统都需要提供一个时钟节拍,以供系统处理诸如延时. 超时等与时间相关的事 ...
- linphone 调试信息
root@phyCORE-AM335x:~ linphonec -V -d 6INFO: no logfile, logging to stdoutortp-message-oRTP-0.20.0 i ...
- 一个性能较好的JVM参数配置(转)
一个性能较好的web服务器jvm参数配置: -server//服务器模式-Xmx2g //JVM最大允许分配的堆内存,按需分配-Xms2g //JVM初始分配的堆内存,一般和Xmx配置成一样以避免每次 ...
- java调用kettle_导入jar包(1)
版权声明:本文为博主原创文章,未经博主允许不得转载. Java调用Kettle执行任务或转换,需要使用Kettle中的jar,可以先导入lib目录中的几个基本的jar,如:kettle-core.ja ...
- 9款很酷炫jQuery/HTML5特效应用 有源码哦~
目前最流行的网页特效应用当属jQuery和HTML5的特效应用了,它们可以帮你快速实现网页中的各种特效设计.本文就为了收集了9款非常酷炫的jQuery/HTML5特效应用,可以很方便的 ...
- DP - 字符混编
字符混编 Problem's Link ---------------------------------------------------------------------------- Mea ...
- js学习笔记26----事件冒泡,事件捕获
事件冒泡 : 当一个元素接收到事件的时候,会把它接收到的所有传播给它的父级.一直到顶层window.这种现象称之为事件冒泡机制.出去的事件触发. 阻止冒泡 : 当前要阻止冒泡的事件函数中,调用 eve ...
- 在MVC设计模式中,JavaBean的作用是。(选择1项)
A.Controller B.Model C.业务数据的封装 D.View 解答:B
- bundle安装方法
sudo chmod +x filename.bundle sudo ./filename .bundle 原文链接:http://www.chinastor.com/a/linux/ubuntu/0 ...
- CPictureEx类
CPictueEx类不仅可以显示GIF(包括GIF动画),还可以显示JPEG.BMP.WMF.ICO.CUR等. 参考:https://www.codeproject.com/Articles/142 ...