【模板】spfa

匿名 (未验证) 提交于 2019-12-03 00:15:02
int dis[maxn]; bool vis[maxn]; queue<int>q;  void spfa(int x) {     mem(dis, 0x3f);     mem(vis, false);     dis[x] = 0;     q.push(x);     vis[x] = true;     while (!q.empty())     {         int t = q.front();         q.pop();         vis[t] = false;         for (Re int i = head[t]; i != -1; i = e[i].nxt)         {             int u = e[i].u;             int w = e[i].w;             if (dis[u] > dis[t] + w)             {                 dis[u] = dis[t] + w;                 if (!vis[u])                 {                     q.push(u);                     vis[u] = true;                 }             }         }     } }

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!