题目传送门//res tp nowcoder

分析

定理:B1~B2当且仅当B1与B2有同构的笛卡尔树。 (B₁~B₂ iff B₁ and B₂ have isomorphic Cartesian trees.)

对A与B同时构建小根堆性笛卡尔树,每次同时插入结点时,判断是否同构即可.

#include<iostream>
#include<cstdio>
using namespace std;
const int L = 100010;
int a[L],b[L],u[L],v[L];
int n;
void build(){
u[n + 1] = v[n + 1] + 1;
int i;
for(i = 2;i<=n;++i){
int k1 = i-1,k2 = i-1;
while(a[i] < a[k1]) k1 = u[k1];
while(b[i] < b[k2]) k2 = v[k2];
if(k1!=k2){
printf("%d\n",i-1);break;
}
u[i] = k1;v[i] = k2;
}
if(i == n+1) printf("%d\n",n);
} int main(){
while(scanf(" %d",&n)!=EOF){
for(int i = 1;i <= n;++i){
scanf(" %d",&a[i]);u[i]=0;
}
for(int i = 1;i <= n;++i){
scanf(" %d",&b[i]);v[i]=0;
}
build();
} return 0;
}

19牛客暑期多校 round1 A 有关笛卡尔树的结论的更多相关文章

  1. 19牛客暑期多校 round2 H 01矩阵内第二大矩形

    题目传送门//res tp nowcoder 目的 给定n*m 01矩阵,求矩阵内第二大矩形 分析 O(nm)预处理01矩阵为n个直方图,问题转换为求n个直方图中的第二大矩形.单调栈计算,同时维护前二 ...

  2. 19牛客暑期多校 round2 F dfs

    题目传送门//res tp nowcoder dfs 先将所有人都归于一队,之后从一队中取出人放置到另一个队. #include<iostream> #include<cstdio& ...

  3. 2019牛客暑期多校训练营(第五场)G - subsequeue 1 (一题我真的不会的题)

    layout: post title: 2019牛客暑期多校训练营(第五场)G - subsequeue 1 (一题我真的不会的题) author: "luowentaoaa" c ...

  4. 2021牛客暑期多校训练营3 J 思维

    传送门 J-Counting Triangles_2021牛客暑期多校训练营3 (nowcoder.com) 题目 Goodeat finds an undirected complete graph ...

  5. 2019牛客暑期多校训练营(第一场)A - Equivalent Prefixes(单调栈)

    题意 给定两个$n$个元素的数组$a,b$,它们的前$p$个元素构成的数组是"等价"的,求$p$的最大值."等价"的意思是在其任意一个子区间内的最小值相同. $ ...

  6. B-xor_2019牛客暑期多校训练营(第四场)

    题意 给出n个数组(每组数个数不定),m个询问 l, r, x 序号在区间\([l,r]\)的每个数组是否都可以取出任意个数异或出x 题解 判断一个数组能否异或出x,是简单的线性基问题 判断多个线性基 ...

  7. 2019牛客暑期多校训练营(第九场)A:Power of Fibonacci(斐波拉契幂次和)

    题意:求Σfi^m%p. zoj上p是1e9+7,牛客是1e9:  对于这两个,分别有不同的做法. 前者利用公式,公式里面有sqrt(5),我们只需要二次剩余求即可.     后者mod=1e9,5才 ...

  8. 2019牛客暑期多校训练营(第一场)A题【单调栈】(补题)

    链接:https://ac.nowcoder.com/acm/contest/881/A来源:牛客网 题目描述 Two arrays u and v each with m distinct elem ...

  9. 2019牛客暑期多校训练营(第一场) B Integration (数学)

    链接:https://ac.nowcoder.com/acm/contest/881/B 来源:牛客网 Integration 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 5242 ...

随机推荐

  1. 【线性代数】1-2:点乘和长度(Dot Products and Length)

    title: [线性代数]1-2:点乘和长度(Dot Products and Length) toc: true categories: Mathematic Linear Algebra date ...

  2. Mac下Tomcat安装&配置&80默认端口设置

    序言: 在学习Tomcat时, 部署虚拟服务主机时,遇到了无响应的情况.原以为是应为Tomcat默认端口8080在调整至(进行端口转发设置)默认端口80会和Mac自带Apache起冲突.但是也有同学使 ...

  3. 事件处理机制与Handler消息传递机制

    一.基于监听的事件处理机制 基于监听的时间处理机制模型: 事件监听机制中由事件源,事件,事件监听器三类对象组成 处理流程如下: Step 1:为某个事件源(组件)设置一个监听器,用于监听用户操作 St ...

  4. Linux 删除文件夹和文件的命令(强制删除包括非空文件)

    linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可.直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字-r 就 ...

  5. RSA加密算法c++简单实现

    RSA是一种非对称加密算法,在公开密钥和电子商业中RSA被广泛使用.它是基于一个很简单的数论事实,两个素数相乘很容易,对两素数乘积因式分解很困难.原理就不再阐述了,我谈谈算法的编程实现过程. 一.RS ...

  6. 怎样用linux命令知道系统是ubuntu还是redhat或者其它的系统?

    1.第一种方法:# lsb_release -aLSB Version:    :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4. ...

  7. 在js中创建命名空间的几种写法

    在JavaScript中全局变量经常会引起命名冲突,甚至有时侯重写变量也不是按照你想像中的顺序来的,可以看看下面的例子:   var sayHello = function() { return 'H ...

  8. Nginx之编写HTTP模块

    1. 常用数据结构 1.1 ngx_str_t typedef struct { /* * 字符串的有效长度 */ size_t len; /* * 有效字符串的起始地址,该字符串通常并不以'\0'结 ...

  9. 【Webscraper】不懂编程也能爬虫

    一.配置环境 在浏览器中安装web scraper插件. 所有安装包下载链接: https://pan.baidu.com/s/1CfAWf0wMO6WqicoUgdYgkg 提取码: nn2e 安装 ...

  10. js函数节流和防抖的理解与实现

    一:函数防抖1.理解:触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间2.思路:每次触发事件时都取消之前的延时调用方法 3.实现: function debounce ...