某国家有V个城市,每两个城市之间都有一条无向路,长度为T,要求寻找一条最短的路,使得该条路经过E条边。
无向图的欧拉路径问题;
这里先判有多少不连通的路集合。
然后每个集合里面利用欧拉路径判断即可。
即最多只能有两个点是奇数点。
多余的点 / 2 就是需要多走的路径数。
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1000 + 10;
int p[1100];
unordered_map<int, int> m;
//并查集
void init() {
for (int i = 0; i < 26; i++)
p[i] = i;
}
int find(int a) {
while (a != p[a])
a = p[a];
return a;
}
void merge