摘要: 1 long long Quick_Pow (long long m, long long n, long long mo) 2 { 3 long long ret = 1; 4 while (n) 5 { 6 if (n & 1) ret = (ret * m) % mo; 7 n >>= 1; m = (m * m... 阅读全文
posted @ 2016-10-22 10:34 -搁浅- 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 二分查找是一种在有序数组查找元素的算法,可以使我们在O(logN)的时间内完成查询,是一种非常高效的算法。 二分查找: 用二分查找法找寻上届: 用二分查找法找寻下届: 这三个函数都有对应的STL函数。 缺陷:必须是有序的数组,且数组的插入操作效率为O(N)。 阅读全文
posted @ 2016-07-26 21:31 -搁浅- 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 最小生成树常用算法有Kruskal算法,Prim算法,Sollin算法,这里只介绍最常用的Kruskal算法(由Joseph Kruskal在1956年发表)。 Kruskal算法所使用的贪心规则是:从剩下的边中选择一条不会产生环路的具有最小耗费的边加入已选择的边的集合中。注意到所选取的边若产生环路 阅读全文
posted @ 2016-07-25 22:40 -搁浅- 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 并查集(Union-find Sets),它主要是处理一些不相交集合的合并问题的数据结构,用于在线等价类(online equiralence class)问题。 在线等价类问题中,初始时有n 个元素,每个元素都属于一个独立的等价类。需要执行以下的操作: 1) Union(x, y):把元素 x 和 阅读全文
posted @ 2016-07-25 21:35 -搁浅- 阅读(394) 评论(0) 推荐(0) 编辑