题意:
n个有高度的点和m条边,边只能从高点到低点走,求最小树形图??
题解:
最小生成树。
朱刘算法求最小树形图只能得70分,考虑更高效的算法。
首先对图分层,发现低层节点对高层答案没有影响,考虑先处理高层的边。
现在假设已经处理了高层的所有边,对于本层的边,其实就是一颗最小生成树。因为高层连向本层的边看做双向边没有任何影响。那么直接把边按照层数排序,第二关键字用权值排序即可。
#include<bits/stdc++.h>
using namespace std;
inline int read(){
char ch=getchar();int i=0,f=1;