题目:
给一个n个点m条边的无向图,每条边上都涂有一种颜色,用数字表示。求节点1到节点n的一条路径,先保证边数尽量少,再保证经过边的字典序最小。一对节点可能有多对边,一条边可能链接两个相同节点。输入保证节点1可以到达节点n。颜色为 1 - 10^9的整数
要点
无
#include<bits/stdc++.h>
#define INF 0x7fffffff
using namespace std;
const int maxn = 1e5 + 20;
int d[maxn]; //存距离
int vis[maxn];
vector<int> ans;
vector<unordered_map<int, int>> vec; //储存数据
//反向bfs
void bfs1(int n, int& dis) {
memset(vis, 0, sizeof(vis));
queue<int> q;
q.push(n);
vis[n] = 1;
while (!q.empty()) {
dis++;
int size = q.size();
vector<int> del;
while (size--) {
int x = q.front();
q