我们知道在已知起点的情况下,求到其他任何一点的最短路是用dijkstra,那么在一个有向图中,我们想知道任意两点之间的最短路,我们就可以使用floyd,而且这个算法表面看起来非常的简单,就是一个三重循环,如果这个图有N个点,那么复杂度为O(|N|3),代码如下。 在复杂度这么高的情况下,一般情况下如 ...
分类:
其他好文 时间:
2019-10-09 17:30:15
阅读次数:
128
解法1:maxSubSum1(a,n)算法中用三重循环来穷举所有的连续子序列,计算它们的和,时间复杂度为T(n) = O(n^3)。 解法2:改进前面的解法,再求两个相邻子序列之和时,它们之间是关联的,在前者计算出来后,求后者时只需在前者的基础上加上一位数就是后者的连续子序列之和,不需要每次都重复计 ...
分类:
其他好文 时间:
2019-10-09 12:47:15
阅读次数:
113
一.算法的起始 1.第一次尝试 如果 a+b+c=1000,且 a^2+b^2=c^2(a,b,c 为自然数),如何求出所有a、b、c可能的组合? (可以考虑到百钱白鸡) 枚举法 # 注意是三重循环 import time start_time = time.time() for a in rang ...
分类:
编程语言 时间:
2019-07-20 18:39:53
阅读次数:
101
题目链接:https://nanti.jisuanke.com/t/A1108 这道题还挺有意思的。让我对Floyd的了解又加深了一点。 首先我们重新审视Floyd这三重循环到底有什么用?第一层是枚举中间结点,第二三层是枚举路径起点和终点。那么是不是当第一层循环还没枚举到的点,此时的最短路就不会经过 ...
分类:
其他好文 时间:
2019-05-07 19:45:00
阅读次数:
177
传送门:https://www.luogu.org/problemnew/show/P1119 这道题其实就是floyd,大家肯定都会,这是一个看上去很简单的算法 ,整个算法一共只有五行,三重循环+一个判断就能求出图中任意两点之间的最短路径。 背的话扫一眼就可以,然而这道题就是考大家是否明白floy ...
分类:
其他好文 时间:
2019-04-12 20:41:12
阅读次数:
165
"bzoj 1337 最小圆覆盖" 补充一个求三角形外心的向量法.用了点积的几何意义,很实用. "出处" . 使用随机增量法求.首先随机打乱顺序,然后三重循环,选择当前在圆外的点更新圆,分别按照 $1/2/3$ 个点确定圆的方式更新即可. 由于随机一个点不在前 $i$ 个点的最小覆盖圆内的概率是 $ ...
分类:
其他好文 时间:
2019-02-16 19:32:26
阅读次数:
254
/* * 在PHP中break语句不仅可以跳出当前循环,还可以指定跳出几层循环 * break $num; num为向外跳的层数 num不能大于最大循环层数 */ // 第三重循环 while(true) { // 第二重 for(;;) { // 第一重 for($i = 0; $i <= 10;... ...
分类:
Web程序 时间:
2018-12-10 14:15:57
阅读次数:
226
弗洛伊德算法是实现最小生成树的一个很精妙的算法,也是求所有顶点至所有顶点的最短路径问题的不二之选。时间复杂度为O(n3),n为顶点数。 精妙之处在于:一个二重初始化,加一个三重循环权值修正,完成了所有顶点至所有顶点的的最短路径计算,代码及其简洁 JS实现: 运行结果:(结果太长只截取不分) 求最短路 ...
分类:
编程语言 时间:
2018-11-15 17:07:01
阅读次数:
160
第 16 题 最接近目标数的三数之和 对一个数组来说,找出其中的三个数,使得三数之和与target最接近,最先想到的是暴力法求解,对i = 0; j = i+ 1; k = j+1;进行三重遍历,记录对target距离的最小值,但是三重循环,时间复杂度0(n3)。 改进 : 对寻求目标数来说,三数之 ...
分类:
其他好文 时间:
2018-09-30 15:02:18
阅读次数:
143
思路就是三重循环遍历即可,反正不卡时间复杂度(逃 class Solution { public: int triangleNumber(vector<int>& nums) { int count = 0; for(int i = 0; i < nums.size(); i++) for(int ...
分类:
其他好文 时间:
2018-08-17 23:31:30
阅读次数:
208