广搜 bfs

 //bfs

 #include<iostream>
#include<cstdio>
using namespace std;
int queue[],top=,end=;
int map[][];
int vis[];
int n,m;
void bfs(int p)
{
queue[end]=p;
vis[p]=;
printf("%c -->",queue[end]+);
while(top!=end)
{
top++;
int k=queue[top];
for(int i=;i<=n;i++)
{ if(vis[i]==&&map[k][i]==)
{
printf("%c-->",i+);
queue[++end]=i;
vis[i]=;
}
}
}
}
int main()
{
char head,tail;
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)
{
cin>>head>>tail;
head=head-;
tail=tail-;
map[head][tail]=map[tail][head]=;
}
bfs();
return ;
}

深搜 dfs

 #include<iostream>
#include<cstdio>
using namespace std;
char maps[][];
bool vis[];
int q,m;
void dfs(int a){
vis[a]=;
if(a<q)
printf("%c --> ",a+);
else printf("%c",a+);
for(int i=;i<=q;i++)
{
if(maps[a][i]==&&vis[i]==)
dfs(i);
}
}
int main()
{ char a,b;
cin>>q>>m;
for(int i=;i<=m;i++)
{
cin>>a>>b;
maps[a-][b-]=;
maps[b-][a-]=;
}
dfs();
}

Floyed

 #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int maps[][];
int ans;
int main()
{
memset(maps,,sizeof(maps));
int n,m;
cin>>n>>m;
int he,ta,len;
for(int i=;i<=m;i++)
{
cin>>he>>ta>>len;
maps[ta][he]=maps[he][ta]=len;
}
int x,y;
cin>>x>>y;
for(int k = ;k <= n;k++)
for(int i = ;i <= n;i++)
for(int j = ;j <= n;j++)
{
if(maps[i][j]>maps[i][k]+maps[k][j])
maps[i][j]=maps[i][k]+maps[k][j];
} printf("%d",maps[x][y]);
}

Dijkstra

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n,m;
const int maxn=;
int map[][],start,end;
bool vis[];
int dis[],road[],minn,k; void add(int now)
{
for(int i=;i<=n;i++)
{
dis[i]=map[now][i];
}
vis[now]=true;
dis[now]=;
for(int i=;i<=n-;i++)
{
minn=maxn;
k=now;
for(int j=;j<=n;j++)
if(vis[j]==false&&dis[j]<minn)
{
minn=dis[j];
k=j;
}
vis[k]=true;
for(int g=;g<=n;g++)
if(vis[g]==false&&dis[g]>dis[k]+map[k][g])
{
dis[g]=dis[k]+map[k][g];
}
}
printf("%d",dis[end]);
return ; }
int main()
{
memset(map,maxn,sizeof(map));
memset(vis,false,sizeof(vis));
scanf("%d%d",&n,&m);
int he,ta,len;
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&he,&ta,&len);
map[ta][he]=map[he][ta]=len;
}
memset(dis,maxn,sizeof(dis));
cin>>start>>end;
add(start);
return ;
}

模板 图的遍历 bfs+dfs 图的最短路径 Floyed+Dijkstra的更多相关文章

  1. 图的遍历BFS广度优先搜索

    图的遍历BFS广度优先搜索 1. 简介 BFS(Breadth First Search,广度优先搜索,又名宽度优先搜索),与深度优先算法在一个结点"死磕到底"的思维不同,广度优先 ...

  2. 7.9模拟赛T1图的遍历(dfs)

    图的遍历(dfs) [题目描述] 对于一个有向图G来说,我们存在一个经典的遍历算法,就是DFS (深度优先搜索遍历).将G以1号点为起点进行DFS后,我们可以 得到G的一棵DFS遍历树T.就此,我们可 ...

  3. 图的遍历BFS

    图的遍历BFS 广度优先遍历 深度优先遍历 可以进行标记 树的广度优先遍历,我们用了辅助的队列 bool visited[MAX_VERTEX_NUM] //访问标记数组 //广度优先遍历 void ...

  4. 图的创建和遍历(BFS/DFS)

    图的表示方法主要有邻接矩阵和邻接表.其中邻接表最为常用,因此这里便以邻接表为例介绍一下图的创建及遍历方法. 创建图用到的结构有两种:顶点及弧 struct ArcNode { int vertexIn ...

  5. 图的遍历:DFS和BFS

    图的遍历一般由两者方式:深度优先搜索(DFS),广度优先搜索(BFS),深度优先就是先访问完最深层次的数据元素,而BFS其实就是层次遍历,每一层每一层的遍历. 1.深度优先搜索(DFS) 我一贯习惯有 ...

  6. 数据结构(三十二)图的遍历(DFS、BFS)

    图的遍历和树的遍历类似.图的遍历是指从图中的某个顶点出发,对图中的所有顶点访问且仅访问一次的过程.通常有两种遍历次序方案:深度优先遍历和广度优先遍历. 一.深度优先遍历 深度优先遍历(Depth_Fi ...

  7. Kruskal和prime算法的类实现,图的遍历BFS算法。

    一.图的遍历 #include<iostream> #include<queue> #include<vector> using namespace std; in ...

  8. 图的遍历——BFS

    原创 裸一篇图的BFS遍历,直接来图: 简单介绍一下BFS遍历的过程: 以上图为例子,从0开始遍历,访问0,按大小顺序访问与0相邻的所有顶点,即先访问1,再访问2: 至此顶点0已经没有作用了,因为其本 ...

  9. 算法导论—无向图的遍历(BFS+DFS,MATLAB)

    华电北风吹 天津大学认知计算与应用重点实验室 最后改动日期:2015/8/22 无向图的存储方式有邻接矩阵,邻接链表,稀疏矩阵等. 无向图主要包括双方面内容,图的遍历和寻找联通分量. 一.无向图的遍历 ...

随机推荐

  1. 阿里云Tengine和Openresty/1.11.2.3 数据对比

    HLS播放延迟测试:阿里云48s ,openresy 31s Cache-Control: max-age=300 NGINX下配置CACHE-CONTROL   Content-Length:637 ...

  2. go语言学习之路(一)Hello World

    为什么要使用 Go 语言?Go 语言的优势在哪里? 1.部署简单. 2.并发性好. 3.良好的语言设计. 4.执行性能好. Go环境搭建 Golang下载 国外镜像  https://www.gola ...

  3. 第14月第1天 uialterview 键盘 uibutton圆角

    1. 在IOS 8之后 当UIAlertView 和keyboard 同时出现时,会出现键盘闪现的情况 所以就修正UIAlertView http://blog.sina.com.cn/s/blog_ ...

  4. 第9月第9天 CTFramesetterCreateWithAttributedString

    1. NSString *text = @"This\nis\nsome\nmulti-line\nsample\ntext."; UIFont *uiFont = [UIFont ...

  5. ListUtil(差集、交集、并集)

    package cn.fraudmetrix.octopus.horai.biz.utils; import java.util.ArrayList; import java.util.Arrays; ...

  6. webpack react 错误整理

    1.ERROR in ./src/entry.js Module build failed: SyntaxError 解决方法: 安装babel-preset-react,  npm install ...

  7. State Estimation for Robotics (Tim Barfoot) exercises Answers

    Here are some exercises answers for State Estimation for Robotics, which I did in June, 2017. The bo ...

  8. springboot整合rabbitmq客户端连接报超时异常问题解决:An unexpected connection driver error occured java.net.SocketException: Socket Closed,java.util.concurrent.TimeoutException

    我用的是springboot2.0.6版本,对应的ampq也是2.0.6版本,然后启动一直报: 还有java.util.concurrent.TimeoutException, 用户授权什么的都对,很 ...

  9. poj1292

    prim,把每个墙看成一个节点,从起点用prim求最小生成树,直到覆盖到终点为止,输出最小生成树中的最大边 #include <cstdio> #include <cmath> ...

  10. 关于sklearn,监督学习几种模型的对比

    # K近邻,适用于小型数据集,是很好的基准模型,容易解释 from sklearn.neighbors import KNeighborsClassifier # 线性模型,非常可靠的首选算法,适用于 ...