您的位置:首页 > 其它

Dijkstra优先队列模板

2016-07-29 20:21 288 查看
///Dijkstra优先队列模板
struct Node
{
int x,d;
Node(int a,int b){x=a;d=b;}
bool operator < (const Node & a) const
{
return d>a.d;
}
};
vector<Node>g[mx];
int ds[mx];
int n,m;

void dijk()
{
priority_queue<Node>q;
q.push(Node(1,0));
while (!q.empty())
{
Node N=q.top();q.pop();
for (int i=0;i<g[N.x].size();i++)
{
Node y=g[N.x][i];
if (ds[y.x]>y.d+N.d)
{
ds[y.x]=y.d+N.d;
q.push(Node(y.x,ds[y.x]));
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: