Dijkstra+set堆优化局部模板
这是某天2018-10-25写的某题(P1613-luogu)的局部代码,目的是方便自己记忆一些细节,所以这里不过多赘述算法原理或题目
邻接矩阵mapp表示有向图
struct ELE { int i,num; bool operator<(const ELE &a)const { return num<a.num; } }; //..... int dijkstra() { qu.insert((ELE){1,0}); memset(dis,127,sizeof(dis)); dis[1]=0; while(!qu.empty()) { ELE a=*qu.begin();qu.erase(qu.begin()); for(int i=1;i<=n;i++) { if(mapp[a.i][i]&&mapp[a.i][i]+dis[a.i]<dis[i]) { qu.erase((ELE){i,dis[i]}); dis[i]=mapp[a.i][i]+dis[a.i]; qu.insert((ELE){i,dis[i]}); } } } return dis[n]; }
cckk

浙公网安备 33010602011771号