这是完整代码:
# 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;
}
请求路过大佬帮忙调一下