深搜广搜初学蒟蒻 20分 4TLE 求助大佬。。
查看原帖
深搜广搜初学蒟蒻 20分 4TLE 求助大佬。。
621964
Layker楼主2022/11/21 18:24
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;

const int N = 100005;

vector<int> ALG[N];
int DFSv[N], BFSv[N];
queue<int> q;


void DFS(int v)
{
	cout << v << ' '; DFSv[v] = 1;
	for (auto it = ALG[v].begin(); it != ALG[v].end(); it++)
		if(!DFSv[*it]) DFS(*it);
}

void BFS(int v)
{
	cout << v << ' '; BFSv[v] = 1;
	q.push(v);
	while(!q.empty())
	{
		int i = q.front(); q.pop();
		for (auto it = ALG[i].begin(); it != ALG[i].end(); it++)
		{
			if(!BFSv[*it]) {cout << *it << ' '; BFSv[*it] = 1;}
			q.push(*it);
		}
	}
}

int main()
{
	int v1, v2;
	int vexnum, arcnum;
	
	cin >> vexnum >> arcnum;
	for (int i = 0; i < arcnum; i++) 
	{
		cin >> v1 >> v2;
		ALG[v1].push_back(v2);
	}
	
	for (int i = 1; i <= vexnum; i++) sort(ALG[i].begin(), ALG[i].end());
	
	DFS(1); cout << '\n';
	BFS(1);
}          

不知道是哪里的原因。。。

2022/11/21 18:24
加载中...