# 01BFS 當我們邊的權重只有0跟1時,可以利用01BFS演算法的精隨來減少時間複雜度,因為Dijkstra是利用priority_queue來實做,但01BFS只需要deque就好了,原因如下: 因為權重只有0跟1,所以不需要priority_queue的Log來排序,只需要自己判斷邊權重是0或1再往前塞或往後塞就好了。 ```cpp= for(int i=1;i<=N;i++) dis[i]=inf; deque<int> q; q.push_front(s); dis[s]=0; while(!q.empty()){ int now=q.front();q.pop_front(); for(auto i:Graph[now]){ if(dis[now]+i.S<dis[i.F]){ dis[i.F]=dis[now]+i.S; if(i.S) q.push_back(i.F); //if weight = 1 else q.push_front(i.F); //if weight = 0 } } } cout << dis[e] << '\n'; ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up