博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最短路默写
阅读量:5083 次
发布时间:2019-06-13

本文共 2654 字,大约阅读时间需要 8 分钟。

Dij

bool visit[MAXN];        priority_queue
, vector
>, greater
> > que; pair
cnt; memset(visit, false, sizeof(visit)); visit[st] = true; que.push(make_pair(0, st)); while (!que.empty()) { cnt = que.top(); que.pop(); int ucost = cnt.first; int u = cnt.second; for (int i = Head[u]; i; i = nxt[i]) { int v = to[i]; if (visit[v]) { continue; } visit[v] = true; if (dis[v] > dis[u] + cost[i]) { dis[v] = dis[u] + cost[i]; que.push(make_pair(dis[v], v)); } } }

SPFA

dfs求负环版

#include
using namespace std;const int maxn = 2e5+ 5;struct lpl{ int to, dis; }lin;vector
point[maxn];int n, m, dis[maxn];bool Flag, vis[maxn];inline void connect(int a, int b, int w){ lin.to = b; lin.dis = w; point[a].push_back(lin); }inline void putit(){ int a, b, w; scanf("%d%d", &n, &m); for(int i = 1; i <= n; ++i) point[i].clear(); for(int i = 1; i <= m; ++i) { scanf("%d%d%d", &a, &b, &w); connect(a, b, w); if(w > 0) connect(b, a, w); }}void SPFA(int t){ int now; vis[t] = true; for(int i = point[t].size() - 1; i >= 0; --i) { now = point[t][i].to; if(dis[now] > dis[t] + point[t][i].dis) { dis[now] = dis[t] + point[t][i].dis; if(vis[now] == true || Flag == true) { Flag = true; break; } SPFA(now); } } vis[t] = false;}int main(){ int T; scanf("%d", &T); while(T--) { putit(); memset(dis, 0, sizeof(dis)); memset(vis, false, sizeof(vis)); Flag = false; for(int i = 1; i <= n; ++i) { SPFA(i); if(Flag == true) break; } if(Flag == true) { printf("YE5\n"); continue;} printf("N0\n"); } return 0;}
//spfa negetive circle

 

bool visit[MAXN];        queue
que; memset(visit, false, sizeof(visit)); dis[st] = 0, visit[st] = true; que.push(st); while (!que.empty()) { int u = que.front(); que.pop(); visit[u] = false; for (int i = Head[u]; i; i = nxt[i]) { int v = to[i]; if (dis[v] > dis[u] + cost[i]) { dis[v] = dis[u] + cost[i]; if (!visit[v]) { visit[v] = true; que.push(v); } } } }

转载于:https://www.cnblogs.com/Aragaki/p/9320478.html

你可能感兴趣的文章
bzoj 2456: mode【瞎搞】
查看>>
[Typescript] Specify Exact Values with TypeScript’s Literal Types
查看>>
[GraphQL] Reuse Query Fields with GraphQL Fragments
查看>>
Illustrated C#学习笔记(一)
查看>>
理解oracle中连接和会话
查看>>
两种最常用的Sticky footer布局方式
查看>>
Scrapy实战篇(三)之爬取豆瓣电影短评
查看>>
HDU 5510 Bazinga KMP
查看>>
[13年迁移]Firefox下margin-top问题
查看>>
Zookeeper常用命令 (转)
查看>>
Java程序IP v6与IP v4的设置
查看>>
RUP(Rational Unified Process),统一软件开发过程
查看>>
数据库链路创建方法
查看>>
Enterprise Library - Data Access Application Block 6.0.1304
查看>>
重构代码 —— 函数即变量(Replace temp with Query)
查看>>
Bootstrap栅格学习
查看>>
程序员的数学
查看>>
聚合与组合
查看>>
jQuery如何获得select选中的值?input单选radio选中的值
查看>>
设计模式 之 享元模式
查看>>