48pts求优化
查看原帖
48pts求优化
1183074
xzy_AK_IOI楼主2024/11/24 10:03

O(n2log2n) dpO(n^2\log_2n) \ dp求优化

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define F(i,k,n) for (ll i=k;i<=n;i++)
const int N=2e5+10;
int a[N],dp[N];
int n;
int main(){ 
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin>>n;
	F(i,1,n) cin>>a[i];
	if (n>2000) cout<<n;
	else{
		dp[1]=1;
		F(i,2,n){
			dp[i]=i;
			set <int> s;
			s.insert(a[i]);
			for (int j=i-1;j>=0;j--){
				dp[i]=min(dp[i],int(s.size()*s.size()+dp[j]));
				s.insert(a[j]);
			}
		} 
		cout<<dp[n];
	}
	return 0;
}
2024/11/24 10:03
加载中...