判断堆:递归判断每个节点的孩子是否都比其父亲大(小)。

判断BST:中序遍历是否有序。

 #include<cstdio>
using namespace std;
#define lc (rt<<1)
#define rc (rt<<1|1)
int T,n,a[],b[],en;
void Mid(int rt)
{
if(lc<=n) Mid(lc);
b[++en]=a[rt];
if(rc<=n) Mid(rc);
}
bool is_BST()
{
bool f1=,f2=; en=; Mid();
for(int i=;i<=n;i++) if(b[i]<b[i-]) {f1=; break;}
if(f1) return ;
for(int i=;i<=n;i++) if(b[i]>b[i-]) {f2=; break;}
if(f2) return ;
return ;
}
bool is_Heap(int rt)
{
if(lc<=n)
{
if(a[lc]>a[rt]) return ;
if(!is_Heap(lc)) return ;
}
if(rc<=n)
{
if(a[rc]>a[rt]) return ;
if(!is_Heap(rc)) return ;
}
return ;
}
bool is_Heap_2(int rt)
{
if(lc<=n)
{
if(a[lc]<a[rt]) return ;
if(!is_Heap_2(lc)) return ;
}
if(rc<=n)
{
if(a[rc]<a[rt]) return ;
if(!is_Heap_2(rc)) return ;
}
return ;
}
int main()
{
scanf("%d",&T);
for(int i=;i<=T;i++)
{
printf("Case #%d: ",i);
scanf("%d",&n);
for(int j=;j<=n;j++) scanf("%d",&a[j]);
bool flag1=,flag2=;
if(is_BST()) flag1=;
if(is_Heap()) flag2=;
if((!flag2)) if(is_Heap_2()) flag2=;
if(flag1&&flag2) puts("Both");
else if(flag1) puts("BST");
else if(flag2) puts("Heap");
else puts("Neither");
}
return ;
}

【暴力】vijos P1897 学姐吃牛排的更多相关文章

  1. 【vijos1900】 学姐吃寿司

    https://vijos.org/p/1900 (题目链接) 题意 给出一个01环,问最少经过多少次相邻互换使得所有的0聚在一坨,所有的1聚在一坨. Solution 源自:LCF Solution ...

  2. CDOJ 1292 卿学姐种花 暴力 分块 线段树

    卿学姐种花 题目连接: http://acm.uestc.edu.cn/#/problem/show/1292 Description 众所周知,在喵哈哈村,有一个温柔善良的卿学姐. 卿学姐喜欢和她一 ...

  3. 嘉馨学姐又双叒叕来吃包子了 QDUOJ 模拟 尺度法

    嘉馨学姐又双叒叕来吃包子了 QDUOJ 模拟 尺度法 点我进入OJ题目详情 题意 给你一串数,让你求长度最长的子串,这个字串满足里面没有重复出现的数字. 解题思路 使用一个标记数组,来标记每个数的第一 ...

  4. vijosP1903学姐的实习工资

    描述 学姐去实习了, 一共实习了N天, 每一天都可以得到实习工资V[i], 这里V[1..N]被看作是整数序列.因为学姐很厉害, 所以V[1..N]是不下降的.也就是说学姐每天的工资只会越来越多, 不 ...

  5. qwb与学姐 (带秩并查集)

    qwb与学姐 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 149  Solved: 54[Submit][Status][Web Board] Des ...

  6. UESTC 1324:卿学姐与公主(分块)

    http://acm.uestc.edu.cn/#/problem/show/1324 题意:…… 思路:卿学姐的学习分块例题. 分块是在线处理区间问题的类暴力算法,复杂度O(n*sqrt(n)),把 ...

  7. cdoj 1328 卿学姐与诡异村庄 Label:并查集 || 二分图染色

    卿学姐与诡异村庄 Time Limit: 4500/1500MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  ...

  8. Vijos1901 学姐的钱包

    描述 学姐每次出门逛街都要带恰好M元钱, 不过她今天却忘记带钱包了.可怜的doc只好自己凑钱给学姐, 但是他口袋里只有一元钱.好在doc的N位朋友们都特别有钱, 他们答应与doc作一些交换.其中第i位 ...

  9. cdoj 1329 卿学姐与魔法 优先队列

    卿学姐与魔法 Time Limit: 1200/800MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Sta ...

随机推荐

  1. POJ1511:Invitation Cards(最短路)

    Invitation Cards Time Limit: 8000MS   Memory Limit: 262144K Total Submissions: 34743   Accepted: 114 ...

  2. oracle与mysql的group by语句

    之所以去纠那么细节的问题,是因为之前有过一个这样的场景: 有个同学,给了一条数据库的语句给我,问,为啥这样子的语句在oracle语句下执行不了. 1 select * from xx where xx ...

  3. git上传本地项目

    1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2.把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点 ...

  4. How to setup Active Directory (AD) In Windows Server 2016

    Windows Server 2016 is the newest server operating system released by Microsoft in October 12th, 201 ...

  5. 关于ora-12154:TNS:could not resolve the connect identifier specified

    一:前言 刚刚出来实习,在公司配的电脑里面装的oracle和PL SQL时一次性就搞定,但是在自己的电脑上装了就出现这个问题,刚刚在网上看了下,所以自己就写份记载吧! 二: 在打开PLSQL Deve ...

  6. 设置查看java的源程序

    1.点 “window”-> "Preferences" -> "Java" -> "Installed JRES" 2. ...

  7. jzoj2701 【GDKOI2012模拟02.01】矩阵

    传送门:https://jzoj.net/senior/#main/show/2701 [题目大意] 给出矩阵A,求矩阵B,使得

  8. Oop分析方法

    为了实现Oop,这个我已经在一个前端的js项目中实现了Oop,过后总结:对于js这种动态语言,可以在运行时动态组件对象的属性和方法这种,解释型的语言来讲,真的是OOP,如果不存在关系数据库,仅仅是从后 ...

  9. 【洛谷 P1651】 塔 (差值DP)

    题目链接 题意:\(n\)个木块放到两个塔里,每个木块可放可不放,使得两塔高度相同且高度最大,求最大高度. 这个差值\(DP\)的思维难度还是很大的,没想出来,我就打了一个\(dfs\)骗了好像\(2 ...

  10. python发布包到pypi的踩坑记录

    前言 突然想玩玩python了^_^ 这篇博文记录了我打算发布包到pypi的踩坑经历.python更新太快了,甚至连这种发布上传机制都在不断的更新,这导致网上的一些关于python发布上传到pypi的 ...