Luogu 2169 正規表示式

2022-05-25 14:06:09 字數 1077 閱讀 3973

《題目鏈結》

感謝 0xis 推題。

記憶中很久沒有過一遍寫過一題了…

別被題目名稱矇騙!這不是正規表示式題目!和字元(串)處理一點關係都沒有!這是個圖論題啊喂!

題都沒急,capella 你急啥?

由題意得,能夠本地傳輸的機子們處於同一強連通分量,於是 tarjan 一遍,縮點。縮的過程中,對於兩個 scc 之間的邊,選短的加。

我這裡用乙個 map,記錄邊(pair)到邊權(int)的對映,然後用 map 判斷是否加邊就好了。

最短路,跑乙個 dijkstra 即可(珍愛生命,遠離某死亡演算法不解釋)。

輸出 1 所在的 scc 到 n 所在的 scc 的路徑。

#include #include #include #include #include #include #define nullptr null

const int maxn = 200010;

int n, m;

namespace scc

bool operator <(const node& rhs) const

}; struct graph

~edge(void)

}*head[maxn];

graph(int n)

~graph(void)

void addedge(int u, int v, int w)

}*g, *gnew;

void tarjan(int u)

else if(exist[v])

low[u] = std :: min(low[u], dfn[v]);

if(dfn[u] == low[u])

while(u ^ v); }}

void shrink(void)

}void dijkstra(int s)}}

void solve(void)

}int main(void)

scc :: solve();

return 0;

}

謝謝閱讀。

P2169 正規表示式

在internet網路中的每台電腦並不是直接一對一連通的,而是某些電腦之間存在單向的網路連線,也就是說存在a到b的連線不一定存在b到a的連線,並且有些連線傳輸速度很快,有些則很慢,所以不同連線傳輸所花的時間是有大有小的。另外,如果存在a到b的連線的同時也存在b到a的連線的話,那麼a和b實際上處於同一...

洛谷 P2169 正規表示式

題目背景 小z童鞋一日意外的看到小x寫了乙個正規表示式的高階程式,這個正規表示式程式僅僅由字元 0 1 和 構成,但是他能夠匹配出所有在oj上都ac的程式的核心 小z大為頗感好奇,於是他決定入侵小x的電腦上去獲得這個正規表示式的高階程式。題目描述 在internet網路中的每台電腦並不是直接一對一連...

洛谷 P2169 正規表示式

小z童鞋一日意外的看到小x寫了乙個正規表示式的高階程式,這個正規表示式程式僅僅由字元 0 1 和 構成,但是他能夠匹配出所有在oj上都ac的程式的核心 小z大為頗感好奇,於是他決定入侵小x的電腦上去獲得這個正規表示式的高階程式。在internet網路中的每台電腦並不是直接一對一連通的,而是某些電腦之...