【2019牛客暑期多校训练营(第一场) - A】Equivalent Prefixes(单调栈,tricks)

题干:

链接:https://ac.nowcoder.com/acm/contest/881/A
来源:牛客网
 

Two arrays u and v each with m distinct elements are called equivalent if and only if RMQ(u,l,r)=RMQ(v,l,r)

for all 1≤l≤r≤m
where RMQ(w,l,r) denotes the index of the minimum element among wl,wl+1,…,wr
Since the array contains distinct elements, the definition of minimum is unambiguous.


Bobo has two arrays a and b each with n distinct elements. Find the maximum number p≤np≤n where {a1,a2,…,ap}{a1,a2,…,ap} and {b1,b2,…,bp}{b1,b2,…,bp} are equivalent.

输入描述:

The input consists of several test cases and is terminated by end-of-file.The first line of each test case contains an integer n.
The second line contains n integers a1,a2,…,ana1,a2,…,an.
The third line contains n integers b1,b2,…,bnb1,b2,…,bn.* 1≤n≤1051≤n≤105
* 1≤ai,bi≤n1≤ai,bi≤n
* {a1,a2,…,an}{a1,a2,…,an} are distinct.
* {b1,b2,…,bn}{b1,b2,…,bn} are distinct.
* The sum of n does not exceed 5×1055×105.

输出描述:

For each test case, print an integer which denotes the result.

示例1

输入

复制

2
1 2
2 1
3
2 1 3
3 1 2
5
3 1 5 2 4
5 2 4 3 1

输出

复制

1
3
4

题目大意:

给你两个数组a,b,大小为n,让你寻找一个最大的数p (1<= p <= n) ,使之在 1~p 任意一个区间中a,b数组的最小值下标相同。

解题报告:

首先不难证明p是具有单调性的,换句话说,假设p=x成立,那么对任意p=1,2,3...x都成立。(因为他求的区间个数是绝对递增的而且是完全包含之前的区间的)

那么运用数学归纳法的思维,先假设p=i成立,那么当p=i+1时,要考虑的区间就是左端点1~i,右端点i+1。先只考察一个数组的时候,很显然能发现的一个问题就是,因为这个题目只关心最小值,所以区间的左端点从i到1变化的时候,如果变化到j了发现a[j] < a[i+1],则左端点<=j那些区间肯定都不用看了(因为最小值与a[i+1]无关,也就是此时【左端点,i+1】的情况和【左端点,i】的情况相同,又因为假设了p=i成立,所以那些区间肯定成立)。换句话说,a[i+1]只承担左端点为j+1~i的最小值。

回到这个题目,所以只需要比较对于每个p,两个数组求出的j的值是否相同就可以了,如果不相同的话一定就GG。(找交叉部分的区间的某个点当左端点就一定不行)。再把问题抽象一下,就是要看每个点左侧第一个比他小的点是否下标相同就可以了。

问题化简到这里就很显然了,思路就是单调栈。

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<stack>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define F first
#define S second
#define ll long long
#define pb push_back
#define pm make_pair
using namespace std;
typedef pair<int,int> PII;
const int MAX = 2e5 + 5;
const int INF = 0x3f3f3f3f;
int la[MAX],lb[MAX],a[MAX],b[MAX],n;
stack<int> sa,sb;
int main()
{while(~scanf("%d",&n)) {for(int i = 1; i<=n; i++) scanf("%d",a+i);for(int i = 1; i<=n; i++) scanf("%d",b+i);while(sa.size()) sa.pop();for(int i = 1; i<=n; i++) {while(sa.size() && a[i] < a[sa.top()]) sa.pop();if(sa.empty()) la[i] = 0;else la[i] = sa.top();sa.push(i);}while(sb.size()) sb.pop();for(int i = 1; i<=n; i++) {while(sb.size() && b[i] < b[sb.top()]) sb.pop();if(sb.empty()) lb[i] = 0;else lb[i] = sb.top();sb.push(i);}int ans = 0;for(int i = 1; i<=n; i++) {if(la[i] == lb[i]) ans = i;else break;}printf("%d\n",ans);}return 0 ;
}

注意一个小细节:最后判断的时候,不能这么写,不然还得特判当没有break的时候,ans=n。或者直接赋初值ans=n。

for(int i = 1; i<=n; i++) {if(la[i] != lb[i]) {ans = i-1;break;}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/440108.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吴恩达机器学习作业(1):线性回归

目录 1&#xff09;导入相关库和数据 2&#xff09;代价函数 3&#xff09;批量梯度下降 4&#xff09;绘制线性模型 前阵子在网易云课堂学习了吴恩达老师的机器学习课程&#xff0c;今天结合网上资料&#xff0c;用Python实现了线性回归作业&#xff0c;共勉。建议大家使…

【HDU - 5886】Tower Defence(树的直径,思维,dp)

题干&#xff1a; There was a civil war between two factions in Skyrim, a province of the Empire on the continent of Tamriel. The Stormcloaks, led by Ulfric Stormcloak, are made up of Skyrims native Nord race. Their goal is an independent Skyrim free from …

(1).数据结构概述

目录 数据结构概述 预备知识&#xff1a; 模块&#xff1a; 这篇笔记是根据郝斌老师的上课讲义整理而得&#xff1a; 数据结构概述 定义&#xff1a;如何把现实中大量复杂的问题以特定的数据类型和特定的存储结构保存到主存储器中(内存)中&#xff0c; 以及在此基础上为实…

ROS导航之参数配置和自适应蒙特卡罗定位

我们的机器人使用两种导航算法在地图中移动&#xff1a;全局导航&#xff08;global&#xff09;和局部导航&#xff08;local)。这些导航算法通过代价地图来处理地图中的各种信息&#xff0c;导航stack使用两种costmaps http://www.cnblogs.com/zjiaxing/p/5543386.html存储环…

吴恩达机器学习作业(2):多元线性回归

目录 1&#xff09;数据处理 2&#xff09;代价函数 3&#xff09;Scikit-learn训练数据集 4&#xff09;正规方程 练习1还包括一个房屋价格数据集&#xff0c;其中有2个变量&#xff08;房子的大小&#xff0c;卧室的数量&#xff09;和目标&#xff08;房子的价格&#…

【洛谷 - P2756】飞行员配对方案问题(网络流最大流,输出方案)

题干&#xff1a; 题目背景 第二次世界大战时期.. 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2 名飞行员&#xff0c;其中1 名是英国飞行员&#xff0c;另1名是外籍飞行员。在众多的飞行员中…

office 安装错误 1920 osppsvc服务无法启动 failed to start

今天忽然发现Office 报 1920 错误&#xff0c;按照网上的的各类教程&#xff0c;还是不行&#xff0c;没有办法启动。答搞了一下午了&#xff0c;终于Ok&#xff0c;超级简单&#xff1a; 首先&#xff0c;到文件夹 C:\Program Files\Common Files\microsoft shared\OfficeSo…

机器学习笔记(八):神经网络:学习

目录 1&#xff09;Cost function 2&#xff09;Backpropagation algorithm 3&#xff09;Backpropagation intuition 4) Gradient checking 5&#xff09;Random initialization 6&#xff09;Putting it together 注&#xff1a;吴恩达老师的机器学习课程对反向传播算…

【HDU - 6231】K-th Number(二分,思维)

题干&#xff1a; Alice are given an array A[1..N]A[1..N] with NN numbers. Now Alice want to build an array BB by a parameter KK as following rules: Initially, the array B is empty. Consider each interval in array A. If the length of this interval is les…

C 语言运算符优先级(记忆口诀)

优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 &#xff08;表达式&#xff09;/函数名(形参表) . 成员选择&#xff08;对象&#xff09; 对象.成员名 -> 成员选择&#xff08;指针&#xff0…

吴恩达机器学习作业(3):逻辑回归

目录 1&#xff09;数据处理 2&#xff09;sigmoid函数 3&#xff09;代价函数 4&#xff09;梯度下降 5&#xff09;预测函数 我们首先做一个练习&#xff0c;问题是这样的&#xff1a;设想你是大学相关部分的管理者&#xff0c;想通过申请学生两次测试的评分&#xff0c…

机器学习笔记(九):应用机器学习的建议

目录 1&#xff09;Deciding what to try next 2&#xff09;Evaluating a hypothesis 3&#xff09;Model selection and training/validation/test sets 4&#xff09;Diagnosing bias vs. variance 5&#xff09;Regularization and bias/variance 6&#xff09;Learn…

【洛谷 - P3410】拍照(最大权闭合图,网络流最小割)

题干&#xff1a; 题目描述 小B有n个下属&#xff0c;现小B要带着一些下属让别人拍照。 有m个人&#xff0c;每个人都愿意付给小B一定钱让n个人中的一些人进行合影。如果这一些人没带齐那么就不能拍照&#xff0c;小B也不会得到钱。 注意&#xff1a;带下属不是白带的&…

ROS有三个层级的概念,分别是:文件系统级、计算图级和开源社区级

ROS有三个层级的概念&#xff0c;分别是&#xff1a;文件系统级、计算图级和开源社区级。 文件系统级&#xff1a;ROS的内部结构、文件结构和所需的核心文件都在这一层里&#xff0c;理解ROS文件系统是入门ROS的基础。一个ROS程序的结构&#xff0c;是一些按不同功能进行区分的…

【洛谷 - P1231 】教辅的组成(网络流最大流,拆点)

题干&#xff1a; 题目描述 蒟蒻HansBug在一本语文书里面发现了一本答案&#xff0c;然而他却明明记得这书应该还包含一份练习题。然而出现在他眼前的书多得数不胜数&#xff0c;其中有书&#xff0c;有答案&#xff0c;有练习册。已知一个完整的书册均应该包含且仅包含一本书…

机器学习笔记(十):机器学习系统的设计

目录 1&#xff09;Prioritizing what to work on:Spam classification example 2&#xff09;Error analysis 3&#xff09;Error metrics for skewed classes 4&#xff09;Trading off precision and recall 5&#xff09;Data for machine learning 下面将学习到在构建…

ROS坐标系统,常见的坐标系和其含义

常见的坐标系 在使用ROS进行定位导航等操作时&#xff0c;我们经常会遇到各种坐标系。每种坐标系都有明确的含义。理论上坐标系的名称可以是随意的&#xff0c;但是为了方便不同的软件间共享坐标信息&#xff0c;ROS定义了几个常见的坐标系。 1.base_linkbase_link坐标系和机…

【洛谷 - P1345 [USACO5.4]】奶牛的电信(网络流最小割,拆点)

题干&#xff1a; 题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系&#xff0c;于是她们建立了一个奶牛电脑网络&#xff0c;以便互相交流。这些机器用如下的方式发送电邮&#xff1a;如果存在一个由c台电脑组成的序列a1,a2,...,a(c)&#xff0c;且a1与a2相连&#xff0c;a2与…

机器学习笔记(十一):支持向量机

目录 1&#xff09;Optimization objective 2&#xff09;Large Margin Intuition 3&#xff09;Kernels 1 4&#xff09;Kernels II 5&#xff09;Using an SVM 注&#xff1a;这一章SVM可能有点难理解&#xff0c;强烈建议大家把本章的编程作业做了。 1&#xff09;Opt…

ros中的坐标系,

ros中的坐标系&#xff0c;主要包括&#xff1a; map&#xff0c;odom&#xff0c;base_link(base_footprint) 以及如laser&#xff0c;camera等传感器的坐标系&#xff1b; 这些坐标系间的关系可以用下图表示&#xff1a; 这是一个有向图&#xff0c;图中涉及四个坐标系&#…