这道题是我们考试时做的,老师给我们开了 O2。我想不出正解,就打了个 O(n2) 暴力,结果,奇迹发生了……
我居然全部 AC 了!!!!!!!!!!
#include<bits/stdc++.h>
using namespace std;
int n;
struct node{
int f,s;
}num[100005];
bool cmp(node a,node b)
{
return a.f<b.f;
}
int main(){
cin>>n;
int x;
int ans=0;
for(int i=1;i<=2*n;i++)
{
cin>>x;
if(num[x].f)
{
num[x].s=i;
}
else
{
num[x].f=i;
}
}
sort(num+1,num+n+1,cmp);
for(int i=1;i<n;i++)
{
for(int j=i+1;j<=n;j++)
{
if(num[j].f<num[i].s&&num[i].s<num[j].s)
{
ans++;
}
}
}
cout<<ans;
return 0;
}
这是我的代码,各位大佬,能不能帮我看看,这是什么奇迹?