
最小生成树
xyc1719
努力会说谎,但努力不会是白费
展开
-
【NOIP第二轮模拟】 过路费
【问题描述】 在某个遥远的国家里,有n个城市。编号为1,2,3,…,n。 这个国家的政府修建了m条双向道路,每条道路连接着两个城市。政府规定从城市S到城市T需要收取的过路费为所经过城市之间道路长度的最大值。如:A到B长度为2,B到C长度为3,那么开车从A经过B到C需要上交的过路费为3。 佳佳是个做生意的人,需要经常开车从任意一个城市到另外一个城市,因此她需要频繁地上交过路费,由于忙于做生意,...原创 2018-07-20 15:32:14 · 693 阅读 · 0 评论 -
APIO2013 道路费用
题目链接 大意是说,调整k条特殊边边的值,并在原图的基础上构建最小生成树。使得经过所有特殊边的值之和最大。感谢dasxxx学长指出题目要素(加上新边,两点之间最多只有一条边),请各位在理解下文解法时特别注意,如果没有这一要求是不能设计如下算法的。在此安利一下HGEEK首席程序员的博客。大致解法: 先缩点。可以知道,对答案有贡献的只有k条新边。先将k条边进行最小生成树,再构建一棵完成的最...原创 2018-09-09 16:19:10 · 312 阅读 · 0 评论 -
国庆七天测(五)马里奥
【一句话题意】给一个图,有一些可以空岛可以落脚。左右相邻的空岛之间移动不需要梯子,在同一列的空岛之间上下移动需要长度大于等于高度差的梯子。问从起点到终点至少需要多长的梯子。【算法一】鉴于拥有固定长度的梯子,跑一遍bfs确定是否可行的复杂度是O(n)的,且答案关于梯子长度单调。我们可以二分答案,二分梯子的长度再check。总复杂度为O(nlogn)【算法二】格子图的求到某个点的最小值,一般可以用...原创 2018-10-05 15:09:42 · 134 阅读 · 0 评论 -
家园重建
【简要题意】有n个点和m条边。选出其中的某些边构成一个新的图(不一定联通),要求新图中每个连通块中至多有一个环。求新图的边权最大和。【分析】贪心,依旧是一道kruskal类似的题,不同只是要记录当前集合中是否有环。【code】#include<cstdio>#include<cstring>#include<iostream>#include<...原创 2019-02-17 13:54:23 · 500 阅读 · 0 评论