摘要:
比赛链接:https://codeforces.com/contest/1843 ## A. Sasha and Array Coloring **题意**:一个数组,可以任意分成任意组,每组的贡献是组最大值减最小值,求最大总贡献 **思路**:一组内只有最大值和最小值有用,所以每组只由两个数组成即 阅读全文
摘要:
比赛链接:https://codeforces.com/contest/1846 ## A. Rudolph and Cut the Rope **题意**:给n条绳子,知道一端所在高度坐标和各自绳长,他们另一端都连到一个糖果上,问至少剪掉多少绳子糖果能碰到地面 **思路**:显然只有坐标小于绳长的 阅读全文
摘要:
比赛链接:https://codeforces.com/contest/1857 ## A. Array Coloring **题意**:一个数列,问能否分成两个和的奇偶性相同的集合 **思路**:因为偶数不改变奇偶性,咱们就统计奇数的个数,能平分成两组就行 ## B. Maximum Roundi 阅读全文
摘要:
比赛链接:https://codeforces.com/contest/1840 ## A. Cipher Shifer **题意**:给你一个加密后的字符串,加密规则是将原字符串每个字符连续写两次,并在其中添加任意长度大于等于零的子串,求解原字符串 **思路**:不用管添加的子串,从第一个字符开始 阅读全文
摘要:
比赛链接:https://codeforces.com/contest/1851 ## A. Escalator Conversations **题意**:一个扶梯,共m阶,n人站,每个台阶高k,Vlad身高H,Vlad任意站,问有多少人站在这个扶梯上正好和Vlad齐平 满足`abs(H - h[i 阅读全文
摘要:
建最小生成树还有一个基于并查集的算法——kruskal算法 它的思路是从小到大枚举所有的边,如果这条边的两点的老祖宗不相等,这两点至少有一个不在树中,我们就把它算进去 时间复杂度是O(mlogm),和H-prim一样。两者都适合用在稀疏图中,prim适合在稠密图 例题 洛谷 P3366 【模板】最小 阅读全文
摘要:
知道了prim最小生成树算法,我们发现每次找距离最小的点的操作和dijkstra算法中的操作很像,所以我们考虑是否可以将迪杰的优化套到prim上,即用堆优化 时间复杂度大概是O(mlogm) 例题:洛谷 P3366 【模板】最小生成树 ``` #include #include #include # 阅读全文
摘要:
最小生成树,也就是对一个无向图,找到其中边权和最小的树 prim算法的思路就是每次找离当前生成树距离最小的点,逐渐扩大生成树的规模 时间复杂度差不多是O(n^2) 例题:洛谷 P3366 【模板】最小生成树 ``` #include #include #include #include #defin 阅读全文
摘要:
单源最短路 | | Bellman-Ford | SPFA | Dijkstra | H-Dijkstra | | | | | | | | 思路 | 遍历全边,直到不变 | 宽搜渐进,入队再更 | 找最近点,更新邻点,找完不再用 | 取负入队,大根堆找点,其余相同 | | 负边权 | 能 | 能 | 阅读全文
摘要:
全源最短路,换一种说法就是n个单源最短路,可以用n次Bellman-Ford或SPFA,非负边权还可以用Dijkstra,可是有负边权用前两个算法还是慢,如果我们能把负边权映射成非负边权的话,一切就都好办了 这里我们引入一个虚拟结点,它和所有点的初始距离都是0,然后,我们求出来这个结点和其他店的最短 阅读全文