题解:P17720 「FunMusic OI 1C」旋律 / Melody
Milk_snake · · 题解
题解:P17720 「FunMusic OI 1C」旋律 / Melody
简要题意:
给你一个长度为
其中
思路:
普通暴力肯定超时,注意到
暴力枚举
CODE:
#include<bits/stdc++.h>
using namespace std;
int n,maxn;
long long ans;
int a[3005],fa[3005],siz[3005];
int find(int x){
if(!fa[x]||x<1||x>n){
return 0;
}
return fa[x]==x?x:fa[x]=find(fa[x]);
}
void join(int x,int y){
x=find(x);
y=find(y);
if(x&&y){
fa[x]=y;
siz[y]+=siz[x];
maxn=max(maxn,siz[y]);
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int l=1;l<=n;l++){
memset(fa,0,sizeof(fa));
memset(siz,0,sizeof(siz));
maxn=1;
for(int r=l;r<=n;r++){
fa[a[r]]=a[r];
siz[a[r]]=1;
join(a[r]+1,a[r]);
join(a[r]-1,a[r]);
ans+=maxn;
}
}
cout<<ans;
return 0;
}