蒟蒻提问(玄2关)
  • 板块灌水区
  • 楼主YIAN_YU__DYT
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/1/23 17:13
  • 上次更新2025/1/23 17:26:17
查看原帖
蒟蒻提问(玄2关)
1182110
YIAN_YU__DYT楼主2025/1/23 17:13
#include<bits/stdc++.h>
#define int long long
using namespace std;
vector<int> ve[10001];
int ans[100001];
int anssize=0;
int n,m;
int g[10001];
struct v
{
	int u;
	int v;
};
queue<v> q;
int ok()
{
	for(int i=1;i<=n;i++)
		if(g[i]==0)
			return 0;
	return 1;
}
void dfs(int u,int v)
{
	ans[++anssize]=v;
	g[v]==0;
	if(ok())
		return;
	for(auto w:ve[v])
		dfs(v,w);
}
void bfs()
{
	while(!q.empty())
	{
		if(g[q.front().v]==0)
			ans[++anssize]=q.front().v;
		g[q.front().v]=1;
		if(ok())
			break;
		for(auto w:ve[q.front().v])
			q.push({q.front().v,w});
		q.pop();
	}
}
signed main()
{
 	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		int u,v;
		cin>>u>>v;
		ve[u].push_back(v);
	}
	for(int i=1;i<=n;i++)
		sort(ve[i].begin(),ve[i].end());
	dfs(1,1);
	for(int i=1;i<=n;i++)
	{
		cout<<ans[i]<<" ";
		ans[i]=0;
		g[i]=0;
	}
	cout<<"\n";
	anssize=0;
	q.push({1,1});
	bfs();
	for(int i=1;i<=n;i++)
		cout<<ans[i]<<" ";
    return 0;
}

为啥RE? (数据范围:1<=n,m<=10^3)

2025/1/23 17:13
加载中...