博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图论模板
阅读量:5032 次
发布时间:2019-06-12

本文共 1986 字,大约阅读时间需要 6 分钟。

\(dijkstra\)单源最短路径:

void dijkstra(int s){    memset(dis,100,sizeof(dis));    memset(vis,0,sizeof(vis));    priority_queue< pair
> q; dis[s]=0; q.push(make_pair(0,s)); while(!q.empty()) { int u=q.top().second; q.pop(); if(vis[u]) continue; vis[u]=1; for(int i=head[u];i;i=edge[i].next) { int v=edge[i].to; if(dis[v]>dis[u]+edge[i].dis) { dis[v]=dis[u]+edge[i].dis; if(!vis[v]) q.push(make_pair(-dis[v],v)); } } }}

\(spfa\)单源最短路径

void kruskal(){    for(int i=1;i<=n;++i) fa[i]=i;    sort(e+1,e+m+1,cmp);    int cnt=0;    for(int i=1;i<=m;++i)    {        int x=find(e[i].u),y=find(e[i].v);        if(x!=y)        {            fa[x]=y;            ans+=e[i].w;            if(++cnt==n-1) break;        }    }}

\(tarjan\)求强连通分量

void tarjan(int rt){    dfn[rt]=low[rt]=++c;    st[++top]=rt;    for(int i=head[rt];i;i=edge[i].next)    {        int v=edge[i].to;        if(!dfn[v])        {            tarjan(v);            low[rt]=min(low[rt],low[v]);        }        else if(!color[v]) low[rt]=min(low[rt],dfn[v]);    }    if(dfn[rt]==low[rt])    {        color[rt]=++col;        ++size[col];        while(st[top]!=rt)        {            color[st[top--]]=col;            ++size[col];        }        --top;    }}

强连通分量缩点

void rebuild(){    for(int i=1;i<=n;++i)    {        for(int j=head[i];j;j=edge[j].next)        {            int v=edge[j].to;            if(color[i]!=color[v])            {                son[color[i]].push_back(color[v]);                ++rd[color[v]];            }        }    }}

\(kruskal\)最小生成树

void kruskal(){    for(int i=1;i<=n;++i) fa[i]=i;    sort(e+1,e+m+1,cmp);    int cnt=0;    for(int i=1;i<=m;++i)    {        int x=find(e[i].u),y=find(e[i].v);        if(x!=y)        {            fa[x]=y;            ans+=e[i].w;            if(++cnt==n-1) break;        }    }}

转载于:https://www.cnblogs.com/Chtholly/p/11400558.html

你可能感兴趣的文章
maven创建的项目中无法创建src/main/java 解决方案
查看>>
集合1
查看>>
关键词 virtual
查看>>
建造者模式(屌丝专用)
查看>>
UVALive 4730 Kingdom +段树和支票托收
查看>>
[APIO2010]特别行动队
查看>>
SpringBoot 集成ehcache
查看>>
初步swift语言学习笔记2(可选类型?和隐式可选类型!)
查看>>
Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
查看>>
在Vs2012 中使用SQL Server 2012 Express LocalDB打开Sqlserver2012数据库
查看>>
Excel催化剂开源第42波-与金融大数据TuShare对接实现零门槛零代码获取数据
查看>>
【转】常用的latex宏包
查看>>
[TMS320C674x] 一、GPIO认识
查看>>
酷狗的皮肤文件存放在哪
查看>>
C++的引用
查看>>
T-SQL查询进阶--深入浅出视图
查看>>
MapKeyboard 键盘按键映射 机械革命S1 Pro-02
查看>>
Android读取url图片保存及文件读取
查看>>
完整ASP.Net Excel导入
查看>>
判断CPU大小端示例代码
查看>>