P5318求调
  • 板块灌水区
  • 楼主time_as
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/25 20:42
  • 上次更新2023/11/25 21:53:21
查看原帖
P5318求调
1051525
time_as楼主2023/11/25 20:42

全WA

#include<bits/stdc++.h>
using namespace std;

const int N=1e5+10;

struct edge{
	int u,v;
};

vector<int> g[N];
vector<edge> s;
int n,m;
bool vis[N]={0};

bool cmp(edge x,edge y){
	if(x.v<y.v){
		return x.u<y.u;
	}
	return x.v<y.v;
}

void dfs(int u){
	vis[u]=true;
	printf("%d ",u);
	for(int i=0;i<g[u].size();i++){
		int point=s[g[u][i]].v;
		if(!vis[point]){
			dfs(point);
		}
	}
}

void bfs(int u){
	queue<int> q;
	q.push(u);
	printf("%d ",u);
	vis[u]=true;
	while(!q.empty()){
		for(int i=0;i<g[q.front()].size();i++){
			int fro=s[g[q.front()][i]].v;
			if(!vis[fro]){
				q.push(fro);
				printf("%d ",fro);
				vis[fro]=true;
			}
		}
		q.pop();
	}
}

int main(){
	scanf("%d%d",&n,&m);
	for(int i=0;i<m;i++){
		int u1,v1;
		scanf("%d%d",&u1,&v1);
		s.push_back((edge){u1,v1});
	}
	
	sort(s.begin(),s.end(),cmp);
	
	for(int i=0;i<m;i++){
		g[s[i].u].push_back(i);
	}
	memset(vis,0,sizeof(vis));
	dfs(1);
	printf("\n");
	memset(vis,0,sizeof(vis));
	bfs(1);
	
	return 0;
}
2023/11/25 20:42
加载中...