关于简单路径的输出
  • 板块学术版
  • 楼主jiyuanzhiguang
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/9/27 21:50
  • 上次更新2023/10/27 09:42:37
查看原帖
关于简单路径的输出
204260
jiyuanzhiguang楼主2022/9/27 21:50
/*
	4 5
	1 2
	1 3
	2 4
	1 4
	3 4

*/
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <map>
#include <set>
#include <vector>
#include <ctime>
#include <iomanip>

using namespace std;

const int N = 1e5 + 10;
vector <int> g[N];
bool use[N];
int y, ans = 0x3f3f3f3f, x;
int find1;

void dfs(int x1, int step)
{
	use[x1] = true;
	cout << x1 << " ";
	if(x1 == y)
	{
		ans = min(ans, step);
		return;
	}
	
	
	for(int i = 0; i < g[x1].size(); i++)
	{	
		if(use[g[x1][i]] == false)
		{
			step++;
			dfs(g[x1][i], step;
		}
		
	}
}

int main()
{
	int n;
	cin >> n >> x >> y;
	for(int i = 1; i <= n - 1; i++)
	{
		int u, v;
		cin >> u >> v;
		g[v].push_back(u);
		g[u].push_back(v);
	}
	

	dfs(x, 0);

	cout << ans;
	
//	for(int i = 1; i <= n; i++)
//	{
//		cout << i << " : ";
//		for(int j = 0; j < g[i].size(); j++)
//		{
//			cout << g[i][j] << " ";
//		}
//		cout << endl;
//	}
	
	return 0;
}
6 1 2
3 1
2 5
1 2
4 1
2 6

以上代码能输出最短的步数,怎么输出路径

2022/9/27 21:50
加载中...