求助MLE。。。
查看原帖
求助MLE。。。
64167
记凉and忆良楼主2021/9/28 22:10

本人为了这个学的vector

写出来之后提交MLE

#include<bits/stdc++.h>
using namespace std;
vector<int> a[100005];
int n,m;
bool f[100005];
vector<int> b;
void dfs(int w){//dfs遍历 
//	if(a[w].size()==0)	return ;
	cout<<w<<' ';
	for(int i=0; i<a[w].size(); i++){
		if(f[a[w][i]]==false){
			dfs(a[w][i]);
			f[a[w][i]]=true;
		}
	}
	return ;
}
int main(){
	cin>>n>>m;
	for(int i=1; i<=m; i++){
		int x,y;
		x=y=0;
		cin>>x>>y;
		a[x].push_back(y);
	}
	f[1]=true;//第一个点开始搜索 
	for(int i=1; i<=n; i++)//因为要从小到大输出,所以排序一次 
		if(a[i].size()>1)	sort(a[i].begin(),a[i].end());
	dfs(1);
	cout<<endl;
	for(int i=1; i<=n; i++){//初始化记录 
		f[i]=false;;
	}
	f[1]=true;
	b.push_back(1);//用vector记录,因为不会用队列 T_T 
	int p=1;
	for(int i=1; i<=p; i++){//广搜遍历 
		cout<<b[i-1]<<' ';
		int w=b[i-1];
		if(a[w].size()>0){
			for(int j=0; j<a[w].size(); j++){
				if(f[a[w][j]]==false){
					b.push_back(a[w][j]);
					f[a[w][j]]=true;
					p++;
				}
			}
		}
	}
	//不知道为什么会MLE爆内存 
	
	return 0;
}

知道MLE

但是不知道怎么解决。。。

大部分概念不清楚T_T

2021/9/28 22:10
加载中...