解題思路 以邊為單位計算 優先順序佇列儲存與起點最短的邊的長度
#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...