atcoder E
  • 板块学术版
  • 楼主cym_yyds
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/9/2 21:42
  • 上次更新2023/11/2 23:46:44
查看原帖
atcoder E
224546
cym_yyds楼主2023/9/2 21:42

求hack

using namespace std;
typedef long long ll;
const int N=3e5+10;
ll f[N];
ll a[N],la[N],sam[N];
int n;
bool  vis[N];
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int i=1;i<=n;i++)
	{
		if(vis[a[i]])sam[i]=la[a[i]];
		vis[a[i]]=true;
		la[a[i]]=i;
	}
	for(int i=1;i<=n;i++)
	{
		if(sam[i])
		{
			f[i]=(i-sam[i]-1);
		}
	}
	for(int i=1;i<=n;i++)
	{
		if(f[sam[i]])f[i]=f[i]+f[sam[i]];	
	}
	ll ans=0;
	for(int i=1;i<=n;i++)ans+=f[i];
	cout<<ans<<endl;
	return 0;
}
2023/9/2 21:42
加载中...