我居然O(n^2)算法加O2卡过了这道题?!?!
查看原帖
我居然O(n^2)算法加O2卡过了这道题?!?!
509923
SongShouqian楼主2022/3/5 13:38

这道题是我们考试时做的,老师给我们开了 O2。我想不出正解,就打了个 O(n2)O(n^2) 暴力,结果,奇迹发生了……

我居然全部 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;
}

这是我的代码,各位大佬,能不能帮我看看,这是什么奇迹?

2022/3/5 13:38
加载中...