csu1808 優先順序佇列 Dijkstra

2021-07-24 20:29:35 字數 1057 閱讀 8016

解題思路 以邊為單位計算 優先順序佇列儲存與起點最短的邊的長度

#include  "set"

#include "queue"

#include "cmath"

#include "vector"

#include "cstdio"

#include "cstring"

#include "cstdlib"

#include "iostream"

#include "algorithm"

#include "iostream"

using

namespace

std;

#include maxn 100002

#include len le18;

struct edge //儲存邊的資訊

edge[maxn];

struct node // 優先順序佇列的構造

;bool

operator

<(node a,node b) // 優先順序佇列的構造 2

;vector

mrpe[maxn];

int vis[maxn];

long

long dis[maxn];

int main()

); }

mrpe[edge[i].a].push_back(i);// mp存入邊的資訊

mrpe[edge[i].b].push_back(i);

}while(!q.empty()) //佇列的使用

);}

}for(int i=0;i//更新與b鄰近的邊的值);}

}}

long

long mis=1e18;

for(int i=0;i// 在n所有的邊找最短的邊

mis=min(mis,dis[mrpe[n][i]]);

printf("%lld\n",mis);

}return

0;}

// 多動手總會有收穫加油

佇列 優先順序佇列

優先順序佇列的隊尾是不需要改變的,永遠在低下標處。當佇列增加資料時,隊頭的位置就是資料項的大小減去1.public class priorityq 插入 public void insert long item else quearray j 1 item nitem 刪除 public long ...

優先順序佇列

分為最小優先順序佇列和最大優先順序佇列。優先順序佇列是一種用來維護一組元素構成的集合s的資料結構,這一組元素都有乙個關鍵字key,乙個最大優先順序佇列支援的操作 insert s,x 把x插入到集合s中 maxmum s 返回s中最大元素 extra max s 去掉s中最大關鍵字並返回該最大關鍵子...

優先順序佇列

1 include stdafx.h 2 include3 4 using namespace std 5 6 define max heap len 107 int heap max heap len 8 int heap size 0 the number of elements in heap...