
图论
文章平均质量分 64
Z_X_B_233
这个作者很懒,什么都没留下…
展开
-
树结构_最小生成树_Prime算法
输入:一个加权连通图,其中顶点集合为V,边集合为E;初始化:Vnew = {x},其中x为集合V中的任一节点(起始点),Enew = {},为空;.重复下列操作,直到Vnew = V:a.在集合E中选取权值最小的边,其中u为集合Vnew中的元素,而v不在Vnew集合当中,并且v∈V(如果存在有多条满足前述条件即具有相同权值的边,则可任意选取其中之一);b.将v加入集合Vnew中,将原创 2017-03-07 21:07:52 · 671 阅读 · 0 评论 -
树结构_最小生成树_Krustra(边数较少时使用)
.将原图Graph中所有e个边按权值从小到大排序.循环:从权值最小的边开始遍历每条边 直至图Graph中所有的节点都在同一个连通分量中 if 这条边连接的两个节点于图Graphnew中不在同一个连通分量中 添加这条边到图Graphnew中(运用并查集即可)数学证明:原创 2017-03-07 19:55:14 · 765 阅读 · 0 评论 -
优先队列优化的Dijk单源最短路算法
开始以为优先队列优化的是最短路的时间复杂度,现在看来,更多的是优化空间复杂度我们是先用那个把图变成树的数据结构来存储图中所有的边如果我们用邻接表储存边的话,空间复杂度为n^2也就是说我们的数组最大能开到5000*5000现在我们储存边,那么就可以在点较多而边较少的情况下搞定了下面附上注释详尽的代码题目:poj3159 这个题目其实是差分约束+Dijk不懂差分约束的话可以原创 2017-05-09 20:33:15 · 1330 阅读 · 0 评论 -
图结构_最短路_Dijkstra(单源最短路,不能有负边)
数据结构:邻接表Map算法功能:求一点到其他点的最短路径,不能有负边代码算法思想:int Dijkstra(int st,int en,int Map[maxn][maxn],int num)//注意,如果maxn特别大则要将这个数组开到main函数外面{ bool Vis[maxn]; int ans[maxn]; memset(Vis,0,sizeof(V原创 2017-03-16 16:09:48 · 479 阅读 · 0 评论 -
最短路_邻接表_字符串转化为数字的模板
数据结构:STL:mapint num, iterator, distance,flag;//若开始与结尾相同则flag=1int len[155][155]; //最后保存在这里char begin[30], end[30];char a[30], b[30];map station; //字符串与数字的对应代码模板station原创 2017-03-12 18:49:37 · 402 阅读 · 0 评论 -
图结构_最短路_Floyd算法模板
适用范围:求一个边有权值的有向联通图,求点i,到点j的最短路或最长路复杂度:空间复杂度n^2,时间复杂度o(n^3)算法概述:我如果要从点i到点j那么我可以选择以下几种方式从i直接到j从i,经过点1,然后到j从i,经过点2,然后到j.........Floyd算法就是遍历中间经过的点并取最值他可能经过点1,点1,3 ,4,很多种情况先记住这东西,原创 2017-03-08 20:10:46 · 950 阅读 · 0 评论 -
差分约束模板题_poj3159
题目就是给你n个小孩,然后给这些小孩糖,m个约束条件对于每个约束条件有 a,b,c三个数.表示小孩b拿的糖-小孩a的糖要求第一个小孩到第n个小孩拿的糖果的最大差值我们移项就可以发现小孩b的糖所以我们就可以构造一条从a到b的边,边权为c其实我们可以发现从第一个小孩到第n个小孩的最短路的长度是最起码的约束条件输出这个值就好了这里的n为30000所以是原创 2017-05-08 20:48:37 · 279 阅读 · 0 评论 -
我对不起党,对不起国家,对不起人民HDU6201 补题(disj)
这个题目其实特别傻逼但是因为数组开小了一直Tmmp!其实就是建一个超级源点对于每个点我们建一条有向边连接超级源点源点和这个点边权为a【k】然后该怎么建图就怎么建图跑一个最短路,求出超级源点到每个点的最短路,那么这个就是我从别的地方买,到这个点卖,买入价格+路费的最小值然后emmmmm。。。。。再不会就别丢人了,退群吧下面附上自己的1sAC代码,这个。。。。听说还有大原创 2017-09-11 14:07:05 · 1038 阅读 · 0 评论 -
EK(BFS)求最大流的算法模板(邻接表)
#include #include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;int Map[300][300],path[300];int bfs(int st,int en){ queue q; int flow[300]; mems原创 2017-08-07 15:36:30 · 440 阅读 · 0 评论