07 2020 档案
摘要:基本思想: 假设连通网G=(V,E),令最小生成树的初始状态为只有n个顶点而无边的非连通图T=(V,),图中每个顶点自成一个连通分量。 在E中选择 代价最小 的边,**若该边依附的顶点分别在T中不同的连通分量上,则将此边加入到T中;否则,舍去此边而选择下一条代价最小的边。**依此类推,直至T中所有顶
阅读全文
摘要:题目 核心思路:Dijkstra算法 首先,我认为这道题最重要的是建图,解释一下我是如何建图: (题目中说明了是“单程巴士线路”,故图为有向图。) 样例: (线路的站点就是节点,边上的数字就是指这条边属于哪一条线路) 由样例图可以看出,1->7的最少换乘的次数是2次: 1->3 换乘 3->6 换乘
阅读全文
摘要:特点:是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。 举例说明: 图例来自《算法导论》 注意:要求图中不存在负权边。 朴素: void init() { memset(vis,0,sizeof(vis)); memset(d,0,sizeo
阅读全文
摘要:题目 这一题对我有历史性的意义,因为我深刻意识到: 不要用namespace! 不要用namespace! 不要用namespace! 写此题解,以示他人。 (搞错重点了吧喂!) 好,回归正题: 这道题的思路是这样: 首先,用Kruskal算法。 (建议先把 并查集模板与 最小生成树模板 打了再继续
阅读全文
摘要:题目 ###核心思路: Dijkstra + 链式前向星 + 堆优化的题解。 这一题明显是求最短路。与模板不同,它要求的是多源最短路,是每个节点到源点的距离。 这里如果用暴力,或者每个节点求一遍,显然在时间上是过不去的。(每个节点求一遍的堆优化的Dijkstra是50分) 所以,就要用一个重要的结论
阅读全文
摘要:P5837 [USACO19DEC]Milk Pumping G 核心算法 Dijkstra 这题乍一看,像一道Dijkstra的裸题。其实不然。 这道题的不同之处就在于,这道题要求维护两个量,一个是流量,一个是花费。而Dijkstra的模板题,维护的是一个量,就是花费(路程)。 这道题中,流量,与
阅读全文