https://www.patest.cn/contests/gplt/L3-016

题意:中文。

思路:暴力构造,暴力查询就好了。只不过操作很多,很麻烦。比赛的时候再给我10分钟就打完了,手速太慢好可惜。

 #include <bits/stdc++.h>
using namespace std;
#define N 100010
typedef long long LL;
struct Node {
int num;
Node *l, *r, *fa;
Node (int n) {
l = r = fa = NULL;
num = n;
}
} ;
Node *root;
int flag, d;
char s[][]; void Insert(Node *now, Node *f, int x, int kind) {
if(now == NULL) {
now = new Node(x);
now->fa = f;
if(kind) f->r = now;
else f->l = now;
return ;
}
if(x > now->num) Insert(now->r, now, x, );
else Insert(now->l, now, x, );
} Node *Find(int x) {
Node *now = root; d = ;
while(now != NULL && now->num != x) {
if(x > now->num) now = now->r;
else now = now->l;
d++;
}
return now;
} void Solve1(int x) {
if(root && root->num == x) flag = ;
} void Solve2(int x, int y) {
Node *now1 = Find(x), *now2 = Find(y);
if(now1 && now2 && now1->fa == now2->fa) flag = ;
} void Solve3(int x, int y) {
Node *now = Find(y);
if(now && now->fa && now->fa->num == x) flag = ;
} void Solve4(int x, int y) {
Node *now = Find(y);
if(now && now->l && now->l->num == x) flag = ;
} void Solve5(int x, int y) {
Node *now = Find(y);
if(now && now->r && now->r->num == x) flag = ;
} void Solve6(int x, int y) {
Node *now1 = Find(x);
int d1 = d;
Node *now2 = Find(y);
int d2 = d;
if(now1 && now2 && d1 == d2) flag = ;
} int main() {
int n, a, b; scanf("%d", &n);
if(n) scanf("%d", &a), root = new Node(a);
for(int i = ; i < n; i++) scanf("%d", &a), Insert(root, NULL, a, );
int q; scanf("%d", &q);
while(q--) {
flag = ;
scanf("%d", &a);
scanf("%s", s[]);
if(s[][] == 'a') {
scanf("%d", &b);
scanf("%s %s", s[], s[]);
if(s[][] == 's') {
Solve2(a, b);
} else {
Solve6(a, b);
scanf("%s %s %s", s[], s[], s[]);
}
} else {
scanf("%s %s", s[], s[]);
if(s[][] == 'o') {
Solve1(a);
} else if(s[][] == 'a') {
scanf("%s %d", s[], &b), Solve3(a, b);
} else if(s[][] == 'e') {
scanf("%s %s %d", s[], s[], &b), Solve4(a, b);
} else {
scanf("%s %s %d", s[], s[], &b), Solve5(a, b);
}
}
if(flag) puts("Yes");
else puts("No");
}
return ;
}

PAT L3-016:二叉搜索树的结构(暴力)的更多相关文章

  1. PTA 7-2 二叉搜索树的结构(30 分)

    7-2 二叉搜索树的结构(30 分) 二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值:若它的右子树不空,则右子树上所有结点的值均大 ...

  2. 二叉搜索树的结构(30 分) PTA 模拟+字符串处理 二叉搜索树的节点插入和非递归遍历

    二叉搜索树的结构(30 分) PTA 模拟+字符串处理 二叉搜索树的节点插入和非递归遍历   二叉搜索树的结构(30 分) 二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则 ...

  3. 二叉搜索树的结构(30 分) PTA 模拟+字符串处理 二叉搜索树的节点插入和非递归遍历

    二叉搜索树的结构(30 分) 二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值:若它的右子树不空,则右子树上所有结点的值均大于它的根 ...

  4. 【开200数组解决二叉搜索树的建立、遍历】PAT-L3-016. 二叉搜索树的结构——不用链表来搞定二叉搜索树

    L3-016. 二叉搜索树的结构 二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值:若它的右子树不空,则右子树上所有结点的值均大于它 ...

  5. PAT L3-016 二叉搜索树的结构

    https://pintia.cn/problem-sets/994805046380707840/problems/994805047903240192 二叉搜索树或者是一棵空树,或者是具有下列性质 ...

  6. L3-1 二叉搜索树的结构 (30 分)

    讲解的很不错的链接:https://blog.csdn.net/chudongfang2015/article/details/79446477#commentBox 题目链接:https://pin ...

  7. L3-016 二叉搜索树的结构 (30 分) 二叉树

    二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值:若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值:它的左.右子树也分别 ...

  8. L3-016. 二叉搜索树的结构

    二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值:若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值:它的左.右子树也分别 ...

  9. L3-016 二叉搜索树的结构 (30 分)

    二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值:若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值:它的左.右子树也分别 ...

随机推荐

  1. WPF自定义控件 使用阿里巴巴图标

    原文:WPF自定义控件 使用阿里巴巴图标 上一篇介绍了 WPF自定义控件 按钮 的初步使用,在进一步介绍WPF自定义控件 按钮之前,先介绍一下如何在WPF项目中使用阿里巴巴图标,方便以后做示例. 1. ...

  2. SQL Server数据库碎片整理

    碎片产生   在SQL Server中,存储数据的最小单位是页,每一页所能容纳的数据为8060字节.而页的组织方式是通过B树结构  SQL Server向每个页内存储数据的最小单位是表的行(Row)  ...

  3. HTTP、FTP状态码 汇总

    原文:HTTP.FTP状态码 汇总 HTTP1xx - 信息提示(这些状态代码表示临时的响应.客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应. ) • 100 - 继续.• 101 - ...

  4. 图像滤镜艺术---(Sketch Filter)素描滤镜

    原文:图像滤镜艺术---(Sketch Filter)素描滤镜 (Sketch Filter)素描滤镜 素描滤镜的实现方法比较简单,这里我们直接写出算法过程如下: 1,对原图S进行去色命令得到灰度图A ...

  5. Windows 10开发基础——启动默认应用的URI

    主要内容:通过指定的URI来启动默认的应用(设置,应用商店,地图,人脉) 方法一:直接在XAML中添加如下代码 <TextBlock x:Name="LocationDisabledM ...

  6. GIS基础软件及操作(六)

    原文 GIS基础软件及操作(六) 练习六.空间分析的应用 1.加深对缓冲区分析基本原理.方法的认识:2.熟练掌握距离制图创建缓冲区技术方法.3.掌握利用缓冲区分析方法解决地学空间分析问题的能力. 1. ...

  7. UWP应用使用SQLite库的方法

    1.打开菜单“工具”-“扩展和更新”,选择“联机”选项,然后搜索“SQLite”,在搜索结果中找到“SQLite for Universal Windows Platform”,然后点击下载进行安装. ...

  8. Advanced Installer 11.9基于IIS打包札记(For MySQL)

    原文:Advanced Installer 11.9基于IIS打包札记(For MySQL) Mysql免安装前期部署 下载绿色命令行版本的mysql,将其放入到发布的程序发布包内,执行Update批 ...

  9. MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections"

    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establish ...

  10. Linux简单文本处理

    tr命令:tr [option] set1 [set2] 删除或者替换set1中的字符在文本表示这个问题中,windows系统下,\r\n为换行:而linux系统下,\n为换行.win->lin ...