10分,求助大佬
查看原帖
10分,求助大佬
653212
shensiyuan2011楼主2022/8/1 14:44

10分
WA代码如下↓↓

#include<bits/stdc++.h>
using namespace std;
vector<int>G[100001];
bool vis[100001]={0};
bool vis2[100001]={0};
void dfs(int x){//深度优先遍历
	cout<<x<<' ';
	for (int i=0,s=G[x].size();i<s;i++){
		if (!vis[G[x][i]]){
			vis[G[x][i]]=true;
			dfs(G[x][i]);
		}
	}
}void bfs(int n){//广度优先遍历
	queue<int>q;
	int v;
	q.push(1);
	while (!q.empty()){
		vis2[v]=1;
		if (q.empty())return;
		v=q.front();
		cout<<v<<' ';
		q.pop();
		for (int j=0,s=G[v].size();j<s;j++){
			if (!vis2[G[v][j]]){
				vis2[G[v][j]]=1;
				q.push(G[v][j]);
			}
		}
	}
}
int main(){
	ios::sync_with_stdio(false); 
	int n,m,x,y;
	cin>>n>>m;
	for (int i=0;i<m;i++){
		cin>>x>>y;
		G[x].push_back(y);
	}for (int i=1;i<=n;i++){//按照题目的说法,就排了一下序
		sort(G[i].begin(),G[i].end()); 
	}
	vis[1]=true;
	dfs(1);
	cout<<endl;
	bfs(n);
	return 0;
} 

vector做的,不知道哪错了,样例过了。

2022/8/1 14:44
加载中...