zoukankan      html  css  js  c++  java
  • 最短路(模板)

    模板

    三种最短路2333

     1 //dijkstra
     2 void dij(int s){
     3     priority_queue <pair <int,int> > q; //小根堆 
     4     while(!q.empty()) q.pop();
     5     q.push(make_pair(0,s));
     6     while(!q.empty()){
     7         int u = q.top().second;
     8         q.pop();
     9         if(vis[u]) continue;
    10         vis[u] = 1;
    11         for(int i = head[u];i;i = nxt[i]){
    12             int t = edge[i].tt,v = edge[i].vv;
    13             if(dis[t] > dis[u] + v){
    14                 dis[t] = dis[u] + v;
    15                 q.push(make_pair(dis[t],t));
    16             }
    17         }
    18     }
    19     return;
    20 }
    21 //floyd
    22 void floyd(int s,int t){  //s:起点,t:终点 
    23     for(int k = 1;k <= n;++ k){
    24         for(int i = 1;i <= n;++ i){
    25             for(int j = 1;j <= n;++ j){
    26                 f[i][j] = min(f[i][j],f[i][k] + f[k][j]);
    27             }
    28         }
    29     }
    30     cout << f[s][t] << '
    ';
    31     return;
    32 }
    33 //spfa
    34 queue <int> s;
    35 void spfa(int x){//x:起点 
    36     memset(dis,0x3f,sizeof(dis));
    37     while(!s.empty()) s.pop();
    38     dis[x] = 0;
    39     s.push(x);
    40     vis[x] = 1;
    41     while(!s.empty()){
    42         int u = s.front();
    43         s.pop();
    44         vis[u] = 0;
    45         for(int i = head[u];i;i = nxt[i]){
    46             int t = edge[i].tt,v = edge[i].vv;
    47             if(dis[t] > dis[u] + v){
    48                 dis[t] = dis[u] + v;
    49                 if(!vis[t]){
    50                     s.push(t);
    51                     vis[t] = 1;
    52                 }
    53             }
    54         }
    55     }
    56     return;
    57 }
  • 相关阅读:
    Mysql备份和恢复
    前端Css学习
    jQuery学习
    HTML页面学习
    Linux下java环境变量配置
    windows下java环境变量标准配置
    oracle查询消耗服务器资源SQL语句
    Java主线程在子线程执行完毕后再执行
    CentOS7 安装 Redis
    查看Oracle表空间使用情况
  • 原文地址:https://www.cnblogs.com/Loizbq/p/7631991.html
Copyright © 2011-2022 走看看