近期在队友的影响下,开始学习《算法竞赛进阶指南》这本书。对于本来就有一定算法基础的我来说,这本书不论是对于学习不常见的新算法还是对于基础算法的巩固都有很大的帮助。其中,数据结构和图论的一些巧妙的算法令我非常感兴趣。 就数据结构方面的算法来说,线段树在书中是一个重头,这个算法在维护区间上有着很优秀的时 ...
分类:
编程语言 时间:
2020-06-10 19:15:05
阅读次数:
71
不放翻译了,去官网看吧 Floyd-Warshall $O(nmlogm)$算出点对最短路径 按顺序更新$(i=1\sim n)$ 记下$i$到哪些点是没问题的$S$,记下哪些点到$j$的路径是没问题的$T$,然后考虑$i,j$的路径是否能被更新,存在$k\in S\cap T$,且$i\longr ...
分类:
其他好文 时间:
2020-06-09 16:25:35
阅读次数:
83
概念定义: 深度优先遍历:深度优先遍历是图论中的经典算法。其利用了深度优先搜索算法可以产生目标图的相应拓扑排序表,采用拓扑排序表可以解决很多相关的图论问题,如最大路径问题等等。 根据深度优先遍历的特点我们利用Java集合类的栈Stack先进后出的特点来实现。我用二叉树来进行深度优先搜索。 广度优先遍 ...
分类:
编程语言 时间:
2020-06-07 21:24:16
阅读次数:
77
动态规划 思路: dp[i][j]表示走完 i,j 位置所需的最短路径,由于只能向下或者向右,所以第一行和第一列中每个值为当前值加上前一个值,即dp[0][j]=dp[0] [j]+dp[0][j-1],dp[i][0] = dp[i][0]+dp[i-1][0]。非第一行和第一列的值为当前值加上其 ...
分类:
其他好文 时间:
2020-06-07 14:57:26
阅读次数:
52
给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则: 每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明: 如果不存在这样的转换序列,返回一个空列表。所有单词具 ...
分类:
其他好文 时间:
2020-06-07 12:32:57
阅读次数:
62
给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2. /** * Definition ...
分类:
其他好文 时间:
2020-06-06 18:21:27
阅读次数:
58
给 $n$ 点 $m$ 边的带权有向图,边 $i$ 为 $(u_i,v_i,w_i)$。$q$ 次询问,每次给 $x_i$,问修改一些边使整张图的边权和增加 $x_i$ 后最短路最大值(可以把边权修改为浮点数)。
数据范围:$2\le n\le 50$,$1\le m\le n\cdot (n-1)... ...
分类:
其他好文 时间:
2020-06-06 12:36:22
阅读次数:
148
Link 二进制分组。每次选定一个二进制位,把特殊点按编号在这一位上的状态分为两半,跑两遍dij求出这两半之间的最短路。 #include<queue> #include<cstdio> #include<vector> #include<cstring> #include<algorithm> # ...
分类:
其他好文 时间:
2020-06-06 11:19:28
阅读次数:
47
题目描述 现在,若已知一个计算机网络中各路由器间的连接情况,以及各个路由器的最大吞吐量(即每秒能转发的数据包数量),网络中的路由器使用 $1$ 到 \(n\) 编号,假设所有数据包一定沿最短路径转发,试计算从路由器 $1$ 到路由器 \(n\) 的网络的最大吞吐量。计算中忽略转发及传输的时间开销,不 ...
分类:
其他好文 时间:
2020-06-06 11:09:40
阅读次数:
55
最短路算法(一) 最短路算法有三种形态:Floyd算法,Shortset Path Fast Algorithm(SPFA)算法,Dijkstra算法。 我个人打算分三次把这三个算法介绍完。 (毕竟写太长了又没有人看QAQ……)但是这篇博客好像又双叒叕写的有点长,真的请各位耐心看完QAQ 今天先来介 ...
分类:
编程语言 时间:
2020-06-05 22:39:09
阅读次数:
82