Equivalent Prefixes
Posted zcb123456789
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Equivalent Prefixes相关的知识,希望对你有一定的参考价值。
题意: 求一个最大p使得,在区间[1, p] 内的所有区间 a 序列 和 b序列的最小值下标相同
用单调栈来维护,当第i个元素要进栈时,进行必要出栈操作,使得第i个元素进栈后,该栈单调递增,当a,b两栈的元素个数不相等时,则已达到最大
我的是用数组模拟栈
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int a[600005],b[600005],a1[600005],b1[600005];
int main()
int i,j,m,n,s,w,k,k1,ma;
while(~scanf("%d",&n))
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
scanf("%d",&b[i]);
k=k1=0;
ma=n;
for(i=0;i<n;i++)
while(k>0&&a[i]<a1[k-1])
k--;
while(k1>0&&b[i]<b1[k1-1])
k1--;
a1[k++]=a[i];
b1[k1++]=b[i];
if(k!=k1)
ma=i;
break;
printf("%d\\n",ma);
return 0;
以上是关于Equivalent Prefixes的主要内容,如果未能解决你的问题,请参考以下文章
Searching for equivalent of FileNotFoundError in Python 2
1128. Number of Equivalent Domino Pairs