GXOI GZOI2019 旅行者 (最短路)

2021-10-01 12:26:49 字數 1049 閱讀 5283

給定乙個有向圖,其中一些頂點為關鍵點。求這些關鍵點兩兩之間最小距離。

考試時沒怎麼想寫了50分暴力走了。以為是什麼強連通分量的解法,結果就是個最短路。直接從關鍵點跑一次最短路dis[0],再把圖反向在跑一次最短路dis[1]。跑最短路的時候記錄起點col[0/1]。那麼最後直接列舉一條邊(x,y,w),當col[0][x]!=col[1][y]時,答案一定在所有dis[0][x]+w+dis[1][y]中,取最小值即可。

相當於把路徑拆成3部分。

#include

using

namespace std;

inline

void

read

(int

&x)typedef

long

long ll;

const

int maxn =

100005

;const

int maxm =

500005

;const ll inf =

1ll<<50;

int n, m, k, a[maxn]

, fir[maxn]

, to[maxm]

, nxt[maxm]

, wt[maxm]

, cnt;

inline

void

link

(int u,

int v,

int w)

bool inq[maxn]

;queue<

int>q;

void

spfa

(ll* dis,

int* col)}}

ll dis[2]

[maxn]

;int col[2]

[maxn]

;int u[maxm]

, v[maxm]

, w[maxm]

;int main (

)printf

("%lld\n"

, ans);}

}

題解 GXOI GZOI2019 旅行者

調這個題調了兩個月,被自己蠢哭 給乙個有向圖,一組關鍵點,求關鍵點之間的最短的距離 這個題目有兩種做法,分別是 nlogn 和 nlog 2n 的 首先說 nlogn 的官方做法,我們考慮多源迪傑斯特拉 正圖上從 k 個關鍵點出發跑 dijkstra 記某個點離最近的關鍵點距離為 dis 0 i 反...

GXOI GZOI2019 旅行者 (最短路)

給定乙個有向圖,其中一些頂點為關鍵點。求這些關鍵點兩兩之間最小距離。考試時沒怎麼想寫了50分暴力走了。以為是什麼強連通分量的解法,結果就是個最短路。直接從關鍵點跑一次最短路dis 0 再把圖反向在跑一次最短路dis 1 跑最短路的時候記錄起點col 0 1 那麼最後直接列舉一條邊 x,y,w 當co...

旅行者安裝避坑

作為乙個滲透人員,在每次滲透 的時候都要拿出一堆黑客工具,比如nmap,awvs,御劍等工具進行測試,由於實在厭煩了一些低階重複性的工作,趁著2020年新年建立了乙個工具集合平台,將滲透測試常見的網域名稱掃瞄,埠掃瞄,目錄掃瞄,漏洞掃瞄的工具集合在一起 目前平台還在持續開發中,肯定有不少問題和需要改...