摘要:
整理一下前一段时间的最小生成树的算法。(其实是刚弄明白 Kruskal其实算是一种贪心算法。先将边按权值排序,每次选一条没选过的权值最小边加入树,若加入后成环就跳过。 先贴张图做个示例。 (可视化均来自VisuAlgo) 1、邻接链表按权值排序后(可以直接写个cmp,sort()结构体): 2、依次 阅读全文
摘要:
本鶸就会一种快速幂,以后再写别的吧 当你把一道题公式都推出来了,自以为AC在望的时候看到: 1 ≤ M ≤ 1010,1 ≤ N ≤ 1012,你算出来答案为MN 对啥啥取模…… 朴素的算法(包括pow()函数)就是for循环,一遍一遍M*M*M*M*……时间复杂度O(N)。对于某些变态数据肯定是不 阅读全文
摘要:
一个鶸的第二篇笔记与思路。应该还算比较简要,照常免责。 核心为二维father数组:father[i][j]存储第i个点向上跳2^j次到达的点 如father[i][0]表示点i的父亲, [i][1]表示i向上两层, [i][2]表示i向上四层。 用一次DFS维护father数组以及dep等等。 详 阅读全文
摘要:
该文章可能存在硬伤与不妥,不能作为教程阅读。(因为我真的鶸 Dij作为单源最短路算法,需要先确定一个起点。Dij的函数主体为维护每个节点的dis和vis两个变量。dis表示该点距离起点的最短路权值和,vis存储该点是否被访问过。 设点数为n,无向边数为m,则要进行n次循环,每次循环中找出一个dis最 阅读全文
摘要:
【问题描述】 小A 拿到了 n 个数,𝑎1,𝑎2,…,𝑎𝑛;小 B 也拿到了 n 个数,𝑏1,𝑏2,…,𝑏𝑛。他们比较了一下手上的数发现,𝑎1+𝑎2+⋯+𝑎𝑛=𝑏1+𝑏2+⋯+𝑏𝑛。他们决定玩一个游戏,这个游戏流程如下: 1. 检查是否满足𝑎𝑖=𝑏𝑖(1≤𝑖 阅读全文