prim 先将一个点加入集合中,维护一个dis数组,表示该点距集合中的点的最小距离,每次选取dis的最小值,并把那个点加入集合,更新dis。 可以用优先队列优化 kruskal 把所有的边按边权从小到大排序,利用并查集维护集合关系,对于每条边,若两点不在同一集合,则把两点连接。 Boruvka 假设 ...
分类:
其他好文 时间:
2020-07-27 16:08:42
阅读次数:
75
首先,明显的网络流。那么如何建边,对于每个二次函数在[1,m]里挑n个函数值最小的点, 这样子一共n^2个点,注意还要去重。这n^2个点其实就能使得n个二次函数(a, b, c)完全匹配。 那么流量全部设为1,费用是对应的函数值。超级源点和终点费用为0;但是,跑n次费用流时间不允许,但是你仔细想每次 ...
分类:
其他好文 时间:
2020-07-27 15:49:36
阅读次数:
71
给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 来源:力扣(Le ...
分类:
其他好文 时间:
2020-07-27 15:43:09
阅读次数:
57
思路: 1.使用DFS遍历整颗树 2.二叉树的根节点的范围为INT_MIN,INT_MAX. 3.对于当前节点判断是否合法,合法条件:先遍历左子树的最大值是否小于当前节点的值,在遍历右子树,右子树的最小值是否大于当前节点的值 注意: 根节点的边界为 INT_MIN,INT_MAX 左子树的范围:lo ...
分类:
其他好文 时间:
2020-07-27 13:53:58
阅读次数:
61
双端队列广搜 1. 算法分析 双端队列广搜算法只适用于边权只有0和1的情况,本质上是对dijkstra堆优化版本的再次优化。由于dijkstra堆优化版本每次要把最小值从队头拿出,然后更新其他值后插入队列。而当边权只有0和1时,当处理的边权为0,那么更新完仍然为最小值,直接放入队头;为1则插入队尾。 ...
分类:
其他好文 时间:
2020-07-27 13:40:39
阅读次数:
68
bfs最短路与最小步数模型 1. 算法分析 最短路:从A点走到B点的最小距离 最小步数:从状态A到状态B的最小变化数,本质就是最短路 2. 例题 2.1 最短路 acwing1076迷宫问题 给定N*N数组,每个元素只有0和1,求从(0, 0)走到(n - 1, n - 1)的最短路,输出其路径 # ...
分类:
其他好文 时间:
2020-07-27 13:39:28
阅读次数:
64
题目链接: http://poj.org/problem?id=2253 题意: 找从起点到终点所有可能的路径中的最大边权的最小值 思路: 最短路变形 将松弛操作判断条件 dist[v]>dist[u]+w[u][v] 改为 dist[v]>max(dist[u],w[u][v]) 更新操作 dis ...
分类:
其他好文 时间:
2020-07-27 09:48:03
阅读次数:
79
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 题意 给出一个 $n$ 点 $m$ 边的带权无向图,找出结点 $1$ 到结点 $n$ 的路径最小权。($n \le 100, m \le 10000$) 题解 $n$ 的范围较小,可以用 $O_{ ...
分类:
其他好文 时间:
2020-07-27 09:38:16
阅读次数:
51
图2和图3都是树,但是图3是最小生成树,他的路径之和更小 代码 import networkx as nx import matplotlib.pyplot as plt tupo=[[0,2,2,0,3,0], [2,0,5,1,4,0], [2,5,0,2,6,4], [0,1,2,0,0,3] ...
分类:
其他好文 时间:
2020-07-27 09:33:08
阅读次数:
111
步骤: 1.首先要找到所有居民愿意花钱最多的 那个房子。 题目中用到lx,ly数组,是为了同时调节两个数组,使得权值和最大。 或者说当要松弛的时候使得 本来最大的矛盾权值和 尽可能的损失小一些来得到 满足条件的最大权值和! 2.(lx[x]+ly[y]-w[x][y]=0)条件下进行匈牙利算法。 # ...
分类:
其他好文 时间:
2020-07-27 09:27:42
阅读次数:
64