dijstra模板

原创 2018年04月15日 16:10:13
#include <iostream>
#include<queue>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
const int inf=0x3f3f3f3f;
const int Max=1e4+10;
typedef struct P
{
    int from,cost;//from为父亲节点
    friend operator <(P a,P b){return a.cost<b.cost;}//重载一个判断,使优先队列先取出价值小的//
}P;
typedef struct edge
{
    int to,cost;//to为子节点
}edge;
vector<edge> G[Max];//记录节点之间的关系
int d[105];
int n,m;
void dijk()
{
    fill(d+1,d+n+1,inf);
    priority_queue<P> que;
    d[1]=0;
    P p;
    p.from=1;
    p.cost=0;
    que.push(p);
    while(!que.empty()){
        p=que.top();
        que.pop();
        int v=p.from;
        for(int i=0;i<G[v].size();i++){
            edge e=G[v][i];
            if(d[e.to]>d[v]+e.cost){
                d[e.to]=d[v]+e.cost;
                p.from=e.to;
                p.cost=d[e.to];
                que.push(p);
            }
        }
    }
}
int main()
{
    int u,v,w;
    edge e;
    while(~scanf("%d%d",&n,&m)&&(n||m)){
        for(int i=0;i<1010;++i) G[i].clear();
        memset(d,0,sizeof d);
        for(int i=0;i<m;i++){
            scanf("%d%d%d",&u,&v,&w);
            e.to=v,e.cost=w;
            G[u].push_back(e);
            e.to=u;
            G[v].push_back(e);
        }
        dijk();
        if(d[n]==inf)
            printf("-10086\n");
        else
            printf("%d\n",d[n]);
    }
    return 0;
}


WordPress博客模板系统开发

-
  • 1970年01月01日 08:00

Dijstra算法模板

http://blog.csdn.net/u011742541/article/details/12917981 int maps[maxn][maxn],dis[maxn]; bool vis...
  • u011742541
  • u011742541
  • 2013-11-29 13:57:58
  • 482

最短路模板合集~(Dij+Floyd+Spfa)

自己整理的最短路模板,,对于最短路问题主要就是难在构图方面~~   //Dijstra void Dijstra() { int i,j; for(i=0; i...
  • secretbase_
  • secretbase_
  • 2015-04-20 11:52:29
  • 579

最短路模板(dijstra)

#define INF 0Xfffffff const int Max=1000000; int map[Max][Max]; int dis[Max]; bool vis[Max]; void di...
  • u013889359
  • u013889359
  • 2014-03-10 16:04:53
  • 392

标准模板库(STL)使用入门(下)

利用 map 创建 vector 正如你所知,map实际上包含的是元素对。因此你可以这样写: 1 2 3 4 map int> M;   // ....
  • a2796749
  • a2796749
  • 2015-08-10 10:36:13
  • 399

Dijkstra+堆优化 模板

#include #include #include #include #include #include using namespace std; const int maxn=30000+5;  ...
  • qq_34446253
  • qq_34446253
  • 2016-08-16 13:30:31
  • 1676

dijkstra-堆优化-功能全!!模板!!!

#include #include #include #include #include #include using namespace std; const int maxn=1000...
  • qq_33951440
  • qq_33951440
  • 2017-03-28 16:14:40
  • 385

dijstra 模板

int path[100005]; int used[100005]; int d[100005]; vector&amp;lt;int&amp;gt; G[100005]; int s,n; vo...
  • zl1085372438
  • zl1085372438
  • 2018-03-07 18:47:33
  • 102

迪杰斯特拉/dijkstra 算法模板(详细注释)

迪杰斯特拉算法的模板(带详细注释)
  • xdz78
  • xdz78
  • 2015-08-17 08:03:12
  • 2157

UVA 11374 Airport Express(优先队列优化dijstra + 枚举)

UVA Airport Express 题意:在Iokh市机场快线分为经济线和商业线。线路和速度价格都不同。你只有一张商业线车票,即最多只能坐一站商业线,其他时候只能坐经济线。找出一条去机场最快的线...
  • u013081425
  • u013081425
  • 2014-04-28 19:40:48
  • 1067
收藏助手
不良信息举报
您举报文章:dijstra模板
举报原因:
原因补充:

(最多只允许输入30个字)