样例过了,但为什么第二个点错了?求大佬指点
查看原帖
样例过了,但为什么第二个点错了?求大佬指点
1045152
wutong22楼主2024/8/2 21:19
#include<bits/stdc++.h>
using namespace std;
const int N=2*1e5+10;
int n,a[N],vis[N];
int dp[N];
int main() 
{
	int t;
	cin>>t;
	for(int i=1;i<=t;i++)
	{
		cin>>n;
		for(int i=1;i<=n;i++) 
		{
			vis[i]=N;
			cin>>a[i];
			dp[i]=min(dp[i-1]+1,vis[a[i]]);
			vis[a[i]]=min(vis[a[i]],dp[i-1]);
		}
		cout<<n-dp[n]<<endl;
	}
	return 0;
}
2024/8/2 21:19
加载中...