码迷,mamicode.com
首页 > 其他好文 > 详细

11.dijksta 最短路径(最大概率)

时间:2020-07-12 22:32:44      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:abi   while   jks   bsp   double   nbsp   max   i++   col   

class Solution {
    vector<vector<pair<int,double> > >v;
public:
    double maxProbability(int n, vector<vector<int>>& edges, vector<double>& succProb, int start, int end) {
        v.resize(n);
        vector<double> dist(n,0.0);
        dist[start]=1.0;
        for(int i=0;i<edges.size();i++){
            int a=edges[i][0],b=edges[i][1];double c=succProb[i];
            v[a].push_back(make_pair(b,c));
            v[b].push_back(make_pair(a,c));
        }
        priority_queue<pair<double,int> >q;
        q.push(make_pair(1.0,start));
        while(!q.empty()){
            int top=q.top().second;
            q.pop();
            for(int i=0;i<v[top].size();i++){
                int back=v[top][i].first;
                double w=v[top][i].second;
                if(dist[top]*w>dist[back]){
                    dist[back]=dist[top]*w;
                    q.push(make_pair(dist[back],back));
                }
            }
        }
        return dist[end];

    }
};

 

11.dijksta 最短路径(最大概率)

标签:abi   while   jks   bsp   double   nbsp   max   i++   col   

原文地址:https://www.cnblogs.com/apo2019/p/13289926.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!