Dij_heap__前向星。
2024-10-16 17:51:50
//前向星
struct node {
int nxt;
int val;
int lst;
node () {}
node (int next, int value) : nxt(next), val(value) {}
}; struct headnode {
int u;
int val;
headnode () {}
headnode (int uu, int value) : u(uu), val(value) {}
bool operator < (const headnode &a) const {
return val > a.val;
}
}; // 用于优先队列而已。val是比较的值。dist[i] int dist[maxn];
bool vis[maxn]; node edge[maxn];
int last[maxn] void Dij()
{
memset(dist, 0x3f, sizeof(dist));
memset(vis, , sizeof(vis));
priority_queue<headnode> pq;
pq.push(headnode(, ));
dist[] = ;
headnode now;
while (!pq.empty()) {
now = pq.top(); pq.pop();
if (vis[now.u]) continue;
vis[now.u] = true;
for (int i=last[now.u]; i!=-; i=edge[i].lst) {
if (dist[edge[i].nxt] > edge[i].val + dist[now.u]) {
dist[edge[i].nxt] = edge[i].val + dist[now.u];
pq.push(headnode(edge[i].nxt, dist[edge[i].nxt]));
}
}
}
}
最新文章
- Yii 2.x 错误处理器、异常处理器、致命错误处理器 - 类图
- Mac OS X系统安装盘制作
- map() 函数
- 【bzoj1084】最大子矩阵
- 1-5Tomcat 目录结构 和 web项目目录结构
- [转载] 2. JebAPI 之 jeb.api.dex
- 循序渐进开发WinForm项目(4)--Winform界面模块的集成使用
- SpriteKitCommonUse
- Newtonsoft.Json.JsonWriter
- MySQL优化技巧之五(mysql查询性能优化)
- boost库在工作(39)网络UDP异步服务端之九
- javascript脚本化文档
- Ubuntu+vscode打不开
- BugkuCTF~代码审计~WriteUp
- 『Island 基环树直径』
- unittest用例执行的顺序
- Spark性能调优
- 附录A Spring Boot应用启动器
- js copy数组 对象
- iOS获取当前路由信息