11.dijksta 最短路径(最大概率)
Posted apo2019
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11.dijksta 最短路径(最大概率)相关的知识,希望对你有一定的参考价值。
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 最短路径(最大概率)的主要内容,如果未能解决你的问题,请参考以下文章