dfs MLE求助
查看原帖
dfs MLE求助
763575
MengyuChihiro楼主2022/11/23 14:21

这是完整代码:

# include <bits/stdc++.h>
# include <algorithm>
using namespace std;
const int maxn=100000;
struct node{
	int label;
	bool ok;
	vector<int> next;
}v[maxn+5];
int n,k;
void dfs(int num){
	int len=v[num].next.size();
	for(int i=0;i<len;i++){
		if(v[v[num].next[i]].ok){
			cout<<v[num].next[i]<<" ";
			dfs(v[num].next[i]);
			v[v[num].next[i]].ok=false;
		}
	}
	return;
}
void bfs(void){
	queue<int> q;
	q.push(1);
	while(!q.empty()){
		int up=q.front();
		q.pop();
		int len=v[up].next.size();
		for(int i=0;i<len;i++){
			if(!v[v[up].next[i]].ok){
				cout<<v[v[up].next[i]].label<<" ";
				v[v[up].next[i]].ok=true;
				q.push(v[up].next[i]);
			}
		}
	}
	return;
}
int main(void){
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;i++){
		v[i].label=i;
		v[i].ok=true;
	}
	int to,from;
	while(k--){
		scanf("%d%d",&to,&from);
		v[to].next.push_back(from);
	}
	for(int i=1;i<=n;i++)
		sort(v[i].next.begin(),v[i].next.end());
	cout<<"1 ";
	dfs(1);
	cout<<endl<<"1 ";
	bfs();
	return 0;
}

这是出错MLE的部分代码:

void dfs(int num){
	int len=v[num].next.size();
	for(int i=0;i<len;i++){
		if(v[v[num].next[i]].ok){
			cout<<v[num].next[i]<<" ";
			dfs(v[num].next[i]);
			v[v[num].next[i]].ok=false;
		}
	}
	return;
}

请求路过大佬帮忙调一下

2022/11/23 14:21
加载中...