样例过但全WA求助
查看原帖
样例过但全WA求助
1023793
yaodiguoan楼主2024/1/29 09:53

记录

#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <cstring>
using namespace std;
#define cg ch=getchar()
inline int read(){
	int x=0,f=1;char cg;
	while (ch<'0'||ch>'9'){if(ch=='-')f=-1;cg;}
	while (ch>='0'&&ch<='9'){x=x*10+ch-'0';cg;}
	return x*f;
}
int n,m;
vector<int>a[1000010];
bool vis[1000010];
void dfs(int x){
	vis[x]=1;
	printf("%d ",x);
	for(int i=0;i<a[x].size();i++)
		if(!vis[a[x][i]]) dfs(a[x][i]);
}
void bfs(int x){
	queue<int>q;
	q.push(x);
	while(!q.empty()){
		x=q.front();
		q.pop();
		if(vis[x]) continue;
		vis[x]=1;
		printf("%d ",x);
		for(int i=0;i<a[x].size();i++)
			q.push(a[x][i]);
	}
}
int main(){
	n=read(),m=read();
	for(int i=1;i<=m;i++){
		int u,v;
		u=read(),v=read();
		a[u].push_back(v);
	}
	for(int i=1;i<=n;i++) sort(a[i].begin(),a[i].end());
	vis[1]=1;printf("1 ");
	for(int i=0;i<a[1].size();i++) dfs(a[1][i]);
	memset(vis,0,sizeof(vis));
	printf("\n");
	bfs(1);
	return 0;
}

2024/1/29 09:53
加载中...