日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【SPFA】Party(jzoj 1328)

發(fā)布時間:2023/12/3 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【SPFA】Party(jzoj 1328) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Party

jzoj 1328

題目大意

有一個有向圖,給你一個x,讓你求每一個點到x再回去的最短路徑,輸出所有最短路徑的最大值

輸入樣例

4 8 2 1 2 4 1 3 2 1 4 7 2 1 1 2 3 5 3 1 2 3 4 4 4 2 3

輸出樣例

10

樣例解釋

數(shù)據(jù)范圍

1?x?N?10001\leqslant x\leqslant N\leqslant 10001?x?N?1000
1?m?1000001\leqslant m\leqslant 1000001?m?100000
1?ti?1001\leqslant t_i\leqslant 1001?ti??100

解題思路

每一條邊建一條正邊一條反邊,從x跑兩遍spfa,然后合在一起即可

代碼

#include<queue> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int n, m, s, x, y, z, w, h, ans, tot, p[1500], b[1500], bb[1500], head[1500], headd[1500]; struct rec {int to, l, next; }a[100500], e[100500]; void add(int x, int y, int z) {a[++tot].to = y;a[tot].l = z;a[tot].next = head[x];head[x] = tot;e[++w].to = x;//反邊e[w].l = z;e[w].next = headd[y];headd[y] = w; } void spfa() {memset(b, 127/3, sizeof(b));queue<int>d;d.push(s);p[s] = 1;b[s] = 0;while(!d.empty())//最短路{h = d.front();d.pop();for (int i = head[h]; i; i = a[i].next)if (b[h] + a[i].l < b[a[i].to]){b[a[i].to] = b[h] + a[i].l;if (!p[a[i].to]){p[a[i].to] = 1;d.push(a[i].to); }} p[h] = 0;} memset(bb, 127/3, sizeof(bb));d.push(s);p[s] = 1;bb[s] = 0;while(!d.empty())//反的最短路{h = d.front();d.pop();for (int i = headd[h]; i; i = e[i].next)if (bb[h] + e[i].l < bb[e[i].to]){bb[e[i].to] = bb[h] + e[i].l;if (!p[e[i].to]){p[e[i].to] = 1;d.push(e[i].to); }} p[h] = 0;} return; } int main() {scanf("%d %d %d", &n, &m, &s);for (int i = 1; i <= m; ++i){scanf("%d %d %d", &x, &y, &z);add(x, y, z);} spfa();for (int i = 1; i <= n; ++i)ans = max(ans, b[i] + bb[i]);//合在一起printf("%d", ans);return 0; }

總結(jié)

以上是生活随笔為你收集整理的【SPFA】Party(jzoj 1328)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。