GXOI GZOI2019 旅行者 (最短路)

2022-05-07 01:00:08 字數 811 閱讀 5659

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

考試時沒怎麼想寫了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];

queueq;

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年新年建立了乙個工具集合平台,將滲透測試常見的網域名稱掃瞄,埠掃瞄,目錄掃瞄,漏洞掃瞄的工具集合在一起 目前平台還在持續開發中,肯定有不少問題和需要改...