首先显然可以把所有能到的点拎出来建个新图,这样第一问也就做好了. 剩下的部分似乎是一个裸的最小树形图.但显然这个东西是没什么学的必要的并且不太能跑过去. 考虑建出来的图有什么性质.可以发现如果没有高度相等的点这就是个DAG.DAG的最小树形图只需要每个点选一条最短入边即可,最优性显然.或者说是将边从小到大排序后若合法则选入. 然后考虑高度相等的点.如果某条边的两端点已经通过入边连在一起,两个点就相当于已连通,若加入该边则形成环:而如果通过出边连在一起,仍然是未连通的. 那么按照终点高度为第一关键…