对于洛谷内存使用的疑问
查看原帖
对于洛谷内存使用的疑问
351679
shaun2000楼主2025/1/26 18:59

为什么同一个点,本地任务管理器测得消耗50MB并通过,而洛谷MLE? record

#include<bits/stdc++.h>
#define ll long long

using namespace std;
vector<int> e[1505];
int dep[1505];
int ans=0;
int a[1505];
bool used[1505][1505];
int b[1505];
queue<int> q;
int rd[1505];
int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
		dep[i]=1;
	for(int i=1;i<=m;i++)
	{
		int k;
		scanf("%d",&k);
		int idx=0;
		for(int j=1;j<=k;j++)
		{
			scanf("%d",&a[j]);
			if(j!=1)
				for(int l=a[j-1]+1;l<a[j];l++)
					b[++idx]=l;
		}
		for(int j=1;j<=k;j++)
		{
			for(int l=1;l<=idx;l++)
			{
				if(!used[a[j]][b[l]])
				{
					e[a[j]].push_back(b[l]);
					used[a[j]][b[l]]=1;
					rd[b[l]]++;
				}
			}
		}
	}
	for(int i=1;i<=n;i++)
		if(rd[i]==0)
			q.push(i);
	while(!q.empty())
	{
		int t=q.front();
		q.pop();
		for(int i=0;i<e[t].size();i++)
		{
			dep[e[t][i]]=max(dep[e[t][i]],dep[t]+1);
			ans=max(ans,dep[e[t][i]]);
			rd[e[t][i]]--;
			if(rd[e[t][i]])
				q.push(e[t][i]);
		}
	}
	
	printf("%d\n",ans);
	return 0;
}
2025/1/26 18:59
加载中...