摘要: 基本思想: 首先的考虑是采用大数下的迪杰斯特拉来计算,比较繁琐,而且有多重边的情况; 其次可以采用稀疏图下的最小生成树算法来做; 原因: 1.给出的边集天然递增; 2.边满足后续边总大于之前边的和,所以天然可以保证贪心构造生成树,即为最短路径; 值得注意的是老生常谈的取模问题: 方法一: #incl 阅读全文
posted @ 2020-03-30 16:19 暮云林凌 阅读(157) 评论(0) 推荐(0)
摘要: 基本思想: 解法1: 抓住一个关键点:只可以从阵营1到阵营2; 如果是1阵营,则可以到达1或者2阵营; 如果是2阵营,则只可以到达2阵营; 所以在此基础上,进行迪杰斯特拉的优化问题; 解法2: 看一位大佬所给出思想,之前自己想删边,结果失败了。 由于只能从1阵营到2阵营,所以只需要删除从2阵营到1阵 阅读全文
posted @ 2020-03-30 14:19 暮云林凌 阅读(204) 评论(0) 推荐(0)
摘要: 基本思想: 最初想到了聚类问题上,通过并查集聚类生成新的结点,但是极其麻烦; 所以还是按照示例所给的方法,直接将路径权值转换为0,从而直接一次最小生成树来做; 关键点: 无; #include<iostream> #include<vector> #include<string> using nam 阅读全文
posted @ 2020-03-30 13:36 暮云林凌 阅读(153) 评论(0) 推荐(0)
摘要: 基本思想: 最简单的prim即可解决; 关键点; 无; #include<iostream> #include<vector> #include<string> using namespace std; const int maxn = 1010; const int INF = 10000000; 阅读全文
posted @ 2020-03-30 13:11 暮云林凌 阅读(133) 评论(0) 推荐(0)
摘要: 基本思想: 感觉以后要注意一下,最小生成树里面有几个坑: 1.自环问题; 2.两节点间拥有多重路径; 关键点: Prim基础版本无需考虑自环问题; #include<iostream> #include<stdlib.h> #include<vector> #include<string> usin 阅读全文
posted @ 2020-03-30 13:01 暮云林凌 阅读(124) 评论(0) 推荐(0)