
图论
文章平均质量分 72
Selvaggia
这个作者很懒,什么都没留下…
展开
-
香甜的黄油
通过下面这个样例发现的,没错,就是多了一个无法到达的牧场(没有牛)而已。稍稍改动id[x]到count[x]原创 2022-07-25 19:31:17 · 79 阅读 · 0 评论 -
Heavy Transportation(最大生成树|最短路变形)
最大生成树|最短路变形思路分析最大生成树最短路变形(抓住最短路核心思想)题目链接:Heavy Transportation思路分析最短路的变形,要知道最短路的核心思想就是 贪心dijkstra、prim是对顶点选取的贪心对于dijkstra、prim,每次从未收录的顶点中段一个dist最小的收入S集合收入S集合的顶点,最短路径是已经确定的而v节点出队时查看临边dist[to]>dist[v]+w,满足就入队(自动排序啦)这里dist维护的是节点v、to到源点的最短距离而本题,di原创 2022-05-16 20:48:38 · 142 阅读 · 1 评论 -
畅通工程(kruskal做法)
kruskal、并查集畅通工程(已知部分联通)畅通工程再续畅通工程(已知部分联通)已知部分联通,不能直接用优化版的prim算法,看早期博客//#include <bits/stdc++.h>#include <iostream> #include <vector> #include <algorithm> using namespace std;//#define int long longconst int N=1005;struct e原创 2022-04-23 14:51:37 · 412 阅读 · 0 评论 -
有重边不能去时,Dijkstra和prim的异同,去重边,记录最短路径条数
除以上剪枝之外还需注意每次扩展结点进行DFS后要重置路径、花费、标记信息,==同时由于可能存在不同路径起始点与终点相同但路径不同的情况,不能使用普通数组描述的邻接矩阵,==可用自定义结构体的vector二维数组表示,或者链式前向星一开始9分wa,想破头都想不到哪里错了,千方百计加强细节,TT普通二维数组 WA#include <iostream>#include <string.h>using namespace std;const int N=105;const in原创 2022-03-13 15:00:19 · 1164 阅读 · 0 评论 -
最小生成树
最小生成树树、生成树、最小生成树实现最小生成树的两种算法一、prim (普里姆算法)——让一棵树长大二、kruskal算法 ——合木成林树、生成树、最小生成树树:一个无向连通图,不包含回路(连通图中不存在环,该无向连通图就是树生成树:覆盖途中每一个顶点的树最小生成树:有权网络中满足 各边权值 之和最小的支撑树一个有N个点的图,边一定是大于等于N-1条的。图的最小生成树,就是在这些边中选择N-1条出来,连接所有的N个点。这N-1条边的边权之和是所有方案中最小的。应用:要在n个城市之间铺设光缆,原创 2022-02-09 20:14:27 · 1059 阅读 · 0 评论 -
最短路径问题
最短路径之Dijkstra、Floyd算法无权图的单源最短路算法有权图的单源最短路算法Dijkstra算法多源最短路算法无权图的单源最短路算法按照递增(非递减)的顺序找到各个顶点的最短路从源点开始找邻接结点,一圈一圈向外扩展,有点像BFSdist[w]记录w到源点的最短距离 初始化为一个不可能的值记录最短距离的同时 可以发挥vis数组的作用 通过判断dist[w]的初值来判断是否访问过dist[s]初始化为0 path[w]记录到达w的这条最短路径上w的上一个节点届时把w,path[w],p原创 2022-02-09 13:43:34 · 1034 阅读 · 0 评论