求调
查看原帖
求调
840613
ZKqwq楼主2024/3/19 09:58

rt,样例能过但是0pts

#include<bits/stdc++.h>
using namespace std;
vector<int> g[100005];
long long n,m;
bool vis[100005];
void dfs(int x){
	vis[x]=1;
	cout<<x<<" ";
	for(int i=0;i<g[x].size();i++){
		if(!vis[g[x][i]]){
			dfs(g[x][i]);
		}
	}
}
queue<int> q;
void bfs(int x){
	q.push(x);
	cout<<x<<" ";
	vis[x]=1;
	while(!q.empty()){
		int tmp=q.front();
		for(int i=0;i<g[tmp].size();i++){
			if(!vis[g[tmp][i]]){
				q.push(g[tmp][i]);
				cout<<g[tmp][i]<<" ";
				vis[g[tmp][i]]=1;
			}
		}
		q.pop();
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int u,v;
		cin>>u>>v;
		g[u].push_back(v);
	}
	for (int i = 1; i <= n; i++)
	{
		sort(g[i].begin(), g[i].end(), greater<int>());
	}
	dfs(1);
	cout<<endl;
	memset(vis,0,sizeof(vis));
	for (int i = 1; i <= n; i++)
	bfs(1);
}
2024/3/19 09:58
加载中...