图论板子dijkstra,Floyd,prime,bfs,dfs, krustral 待我称王封你为后i 2022-04-23 03:22 172阅读 0赞 #include<bits/stdc++.h> using namespace std; void bfs(){ for(int i=1;i<=n;i++)v[i]=0; queue<Node> q; for(int i=1;i<=number;i++){ if(!v[i]){ q.push(i); while(!q.empty()){ e=q.front(); q.pop(); for(){//遍历邻接点加入到队列中 } } } } } void mst_prime(){ for(int i=1;i<=n;i++){ cost[i]=inf; used[i]=0; } cost[1]=0; int res=0; while(1){ int v=-1; for(int i=1;i<=n;i++) if(!used[i]&&(v==-1||cost[i]<cost[v])) v=i; if(v==-1)break; res+=cost[v]; used[v]=1; for(u遍历v的所有邻接点) if(!used[u]) cost[u]=min(cost[u],cost[v]+G[v][u]); } cout<<res; } void kudikaer(){//设edge[]是存放边的结构体数组,一共有m条边 for(int i=1;i<=n;i++) used[i]=0; int res=0; sort(edge,edge+m);//吧边从小到大排序 for(int i=1;i<=m;i++){ if(sed[edge[i].pre]==0||used[edge[i].end]==0;){ used[edge[i].pre]=used[edge[i].end]=1; res+=edge[i].cost; } } cout<<res;//克鲁笛卡尔是把所有边都排一下序,然后进行最小生成树的筛选 } void dijisitla(){//迪杰斯特拉算法:单源最短路径 (和普利姆算法差不多) for(int i=1;i<=n;i++){ d[i]=inf; used[i]=0; } d[1]=0; while(1){ int v=-1; for(int u=1;u<=n;u++) if(!used[i]&&(v==-1||d[u]<d[v])) v=u; if(v==-1)break; used[v]=1; for(int i=1;i<=n;i++)\ d[i]=min(d[i],d[v]+G[v][i]); } for(int i=1;i<=n;i++)cout<<d[i]; } void floyd(){//弗洛伊德五行算法。 for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) d[i][j]=min(d[i][j],d[i][k]+d[k][j]); } void dfs(int x){ for(遍历x的邻接点u){ if(!used[u]){ used[u]=1; 要进行的操作; dfs(u); } } } void bfs(int x){ queue<Node> q; q.push(x); while(!q.empty()){ Node e=q.front(); q.pop(); for(遍历e的邻接点){ if(!used[i]){ used[i]; bfs要进行的操作; q.push(i); } } } } void monst(){ for(int i=1;i<=n;i++)used[i]=0; for(int i=1;i<=n;i++) if(!used[i]){ used[u]=1; 要进行的操作; dfs(u); } for(int i=1;i<=n;i++) used[i]=0; for(int i=1;i<=n;i++){ if(!used){ bfs(i); } } }
相关 图论小总结 图论最重要的就是怎么建图 在建图的时候主要考虑三件事情: 1.确定结点和边权 2.是否建分层图(最短路DP)? 3.是否建拆点图(DP思想)?如果有限制条件,考虑两种情 系统管理员/ 2024年03月24日 14:11/ 0 赞/ 91 阅读
相关 图论 一、图的常用概念 1、顶点(vertex) 2、边(edge) 3、路径 4、无向图:顶点之间的连接没有方向 ![1007094-201909 柔光的暖阳◎/ 2023年10月10日 07:53/ 0 赞/ 77 阅读
相关 图论基础 图 图由节点和图构成; 有向图:连线有方向;不对称性; 无向图:连线无方向;是有向图的一种特殊请情况; 有权图:连线有权值; 无权图:连线无权值; 简 柔情只为你懂/ 2023年08月17日 17:48/ 0 赞/ 154 阅读
相关 图论之欧拉图 欧拉路径/欧拉回路 欧拉路径是一条经过图中所有边且只经过一次的路径(类似于一笔画问题); 欧拉回路的话就是起点和终点相同的欧拉路径 欧拉通路(欧拉路径):S点到T点的 蔚落/ 2023年08月17日 16:26/ 0 赞/ 168 阅读
相关 图论方法应用 声明:本博客题目和题解均来自www.acwing.com,侵权联删。 各种图论题目最合适的解法如下: ![在这里插入图片描述][watermark_type_ZmFu 小鱼儿/ 2022年10月17日 00:54/ 0 赞/ 155 阅读
相关 图论 http://[blog.csdn.net/pipisorry/article/details/52518118][blog.csdn.net_pipisorry_articl 清疚/ 2022年09月25日 15:21/ 0 赞/ 261 阅读
相关 图论板子dijkstra,Floyd,prime,bfs,dfs, krustral include<bits/stdc++.h> using namespace std; void bfs(){ for(int i=1;i<= 待我称王封你为后i/ 2022年04月23日 03:22/ 0 赞/ 173 阅读
相关 图论算法 Problem1一笔画问题 题目描述 给出一个图,求其欧拉回路(若没有回路,则求其欧拉路径),若不存在则输出‘No solution’ 输入 输入的第一 妖狐艹你老母/ 2022年01月06日 22:13/ 0 赞/ 272 阅读
相关 图论 Floyd算法 Floyd算法 时间复杂度O (n^3) 空间复杂度O (n^2) 用处 可以求任意两个点之间的最短路径长度。 得出的邻接矩阵存储 i 到 j 的 青旅半醒/ 2021年12月15日 05:01/ 0 赞/ 273 阅读
相关 图论重点复习 一、重点概念 1、图:一个图是一个序偶(V,E),记为G=( V , E),其中: (1) V是一个有限的非空集合,称为顶点集合,其元素称为顶点或点。用|V|表示顶点 冷不防/ 2021年09月26日 18:36/ 0 赞/ 1137 阅读
还没有评论,来说两句吧...