为什么这份代码莫名MLE
  • 板块学术版
  • 楼主iqwl
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/10/28 16:38
  • 上次更新2023/11/2 11:03:22
查看原帖
为什么这份代码莫名MLE
808950
iqwl楼主2023/10/28 16:38

学校模拟赛考的题(当然这份不是正解代码)

是正常题目的空间512M,样例能过,但是N开到100之后交上去就全部MLE了,求解

#include<bits/stdc++.h>
#define eb emplace_back
using namespace std;

const int N=100;

int l[N],r[N];
int n,cnt;
vector<int>g[N];

bool solve(int u,int fa,int goal)
{
	if(u==goal)return true;
	for(auto v:g[u])
	{
		if(v==fa)continue;
		if(solve(v,u,goal))return true;
	}
	return false;
}

inline void add(int a,int b)
{
	g[a].eb(b);
}

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	
	cin>>n;
	while(n--)
	{
		int op,x,y;
		cin>>op>>x>>y;
		if(op==2)
		{
			if(solve(x,-1,y))cout<<"YES"<<'\n';
			else cout<<"NO"<<'\n';
		}
		else
		{
			l[++cnt]=x,r[cnt]=y;
			for(int i=1;i<cnt;++i)
			{
				if(x<l[i]&&y>r[i])add(i,cnt);
				else
				{
					if(l[i]>x&&l[i]<y)add(i,cnt),add(cnt,i);
					if(r[i]>x&&r[i]<y)add(i,cnt),add(cnt,i);
				}
			}	
		}
	}
	return 0;
}
2023/10/28 16:38
加载中...