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