zoukankan      html  css  js  c++  java
  • HDU.1874 畅通工程续 (dijkstra)

    HDU.1874 畅通工程续 (Dijkstra)

    题意分析

    坑点比较多
    1. 某两点之间可能有多条通路,在跑Dij时需要用距离最小的算。
    2. 当起点和重点相等的时候,距离为0
    3. 点的编号从0开始。

    代码总览

    #include <bits/stdc++.h>
    #define nmax 210
    using namespace std;
    int mp[nmax][nmax];
    int dis[nmax];
    bool visit[nmax];
    int inf = 1e8;
    int n,m;
    void Dij(int s)
    {
        int cur = s;
        memset(visit,0,sizeof(visit));
        visit[cur] = true;
        for(int i = 0;i<n;++i) dis[i] = inf;
        dis[cur] = 0;
        for(int i = 0;i<n;++i){
            for(int j = 0; j<n;++j){
                if(!visit[j] && dis[cur] + mp[cur][j] < dis[j])
                    dis[j] = dis[cur] + mp[cur][j];
            }
            int mini = inf;
            for(int j = 0; j<n;++j){
                if(!visit[j] && dis[j] < mini){
                    cur = j;
                    mini = dis[cur];
    
                }
            }
            visit[cur] = true;
        }
    }
    int main()
    {
        //freopen("in.txt","r",stdin);
        while(scanf("%d %d",&n,&m) != EOF){
            memset(mp,0,sizeof(mp));
            for(int i = 0; i<n;++i)
                for(int j = 0;j<n;++j)
                    mp[i][j] = inf;
            int sta,end,di;
            for(int i = 0;i<m;++i){
                scanf("%d %d %d",&sta,&end,&di);
                int temp = mp[sta][end];
                int ans = min(temp,di);
                mp[end][sta] = mp[sta][end] = ans;
            }
            scanf("%d %d",&sta,&end);
            Dij(sta);
            if(sta == end){
                printf("0
    ");
            }else if(dis[end] == inf){
                printf("-1
    ");
            }else{
                printf("%d
    ",dis[end]);
            }
        }
        return 0;
    }
  • 相关阅读:
    三元表达式
    迭代器
    python字符串内的自建函数 string.
    shell下的while和if
    正则表达
    nginx下同时做负载均衡和web服务
    nfs匹配nginx服务
    yum安装nginx的负载均衡详解
    samba实战讲解
    python基础之数据类型
  • 原文地址:https://www.cnblogs.com/pengwill/p/7367073.html
Copyright © 2011-2022 走看看