考察知识点:生成树
本题其实不用建树,对比两棵树的差异即可,当生成树 a 有而生成树 b 没有的边的数量不等于生成树 a 没有而生成树 b 有的边的数量时输出 -1(事实上,可以证明对于两棵节点相同的生成树,这两个值一定相等),否则输出相差边数之和的一半。
时间复杂度:
#include <b
展开全文
由于要求边完全相同,所以在 A 中存在的边但 B 中不存在的一定会被删掉,其它边保留,连边就连 B 中剩下没连的。 所以,只用统计 A 中出现过的但 B 中没有出现过的边,对于一条边 ,如果 交换 ,然后查询数对是否出现过即可。 用一个 map 维护。 #include<bits/stdc+
展开全文
**bfs加优先队列 优先队列自动从小到大 这样找到出口,自然是最小值**
#pragma GCC optimze(2);
#include"bits/stdc++.h"
using namespace std;
int n,m;
int a[50][50];
int visit[50][50];
展开全文