zoukankan      html  css  js  c++  java
  • P1629 邮递员送信

     注意:题目说了,所有道路单行

    所以了两次迪杰斯特拉

    #include <bits/stdc++.h>
    using namespace std;
    const int nn = 1e3 + 5;
    const int mm = 1e5 + 5;
    int d[nn],head[nn],ver[mm],edge[mm],nxt[mm],tot;
    bool v[nn];
    int n,m;
    typedef pair<int,int> p;
    priority_queue<p,vector<p>,greater<p> >  que;
    int ans;
    
    struct node{
        int x,y,z;
    }e[mm];
    
    void add(int x,int y,int z){
        ver[++tot] = y;edge[tot] = z;//这条边的终点和边权
        nxt[tot] = head[x];head[x] = tot;//相当于指针
    }
    void dijstra(){
        memset(v,0, sizeof(v));
        memset(d,0x3f,sizeof(d));
        d[1] = 0;
        que.push(make_pair(0,1));
    
        while(!que.empty()){
            int x = que.top().second;//表示节点编号
            que.pop();
            if(v[x]) continue;
            v[x] = 1;
            //遍历所有出边
            for(int i = head[x];i;i=nxt[i]){
                int y = ver[i],z = edge[i];
                if(d[y] > d[x] + z){
                    d[y] = d[x] + z;
                    que.push(make_pair(d[y],y));
                }
            }
        }
    
    }
    int main(){
       // freopen("in","r",stdin);
        ios::sync_with_stdio(0);
        cin >> n >> m ;
        for(int i = 0; i < m; i++){
            cin >> e[i].x >> e[i].y >> e[i].z;
            add(e[i].x,e[i].y,e[i].z);
        }
        dijstra();
        for(int i = 2; i <= n; i++)
            ans += d[i];
    
        tot = 0;
        memset(head,0, sizeof(head));
        memset(ver,0, sizeof(ver));
        memset(nxt,0, sizeof(nxt));
        for(int i = 0; i < m; i++){
            add(e[i].y,e[i].x,e[i].z);
        }
        dijstra();
        for(int i = 2; i <= n; i++)
            ans += d[i];
        cout <<  ans << endl;
        return 0;
    }
    View Code
  • 相关阅读:
    关于jquery动态添加的新元素无法绑定事件那些事
    关于jquery获取json数据的格式问题
    beescms文章列表页函数学习
    beescms相关函数学习
    这是二零一四年十点整的广州
    POJ 1852 Ants 分析
    hiho_1114_扫雷
    hiho_1014_Trie_Tree
    排列组合
    用链表写的冒泡排序理解
  • 原文地址:https://www.cnblogs.com/xcfxcf/p/12817618.html
Copyright © 2011-2022 走看看