题解:P17136 [KOI 2026 #1] 数列排序
题意简述
给定序列
题目分析
考虑排列怎么做。我们考虑
考虑不是排列怎么做。考虑对于
实际实现时有更简单的写法。考虑上述做法的本质,我们记录每个值在
时空复杂度均为线性。
代码
#include<bits/stdc++.h>
using namespace std;
int n,a,q,c,i,l[300005],r[300005];
int main(){
cin.tie(0)->sync_with_stdio(0);
cin>>n;
for(i=1;i<=n;i++){
cin>>a;
if(!l[a])l[a]=i;
r[a]=i;
}
for(i=1;i<=n;i++){
if(r[i]){
c+=r[q]>l[i];
q=i;
}
}
cout<<c;
}