給定乙個有向圖,其中一些頂點為關鍵點。求這些關鍵點兩兩之間最小距離。
考試時沒怎麼想寫了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年新年建立了乙個工具集合平台,將滲透測試常見的網域名稱掃瞄,埠掃瞄,目錄掃瞄,漏洞掃瞄的工具集合在一起 目前平台還在持續開發中,肯定有不少問題和需要改...