拓?fù)渑判?/h1>
2023-07-09 21:12 作者:數(shù)學(xué)哪里出來 | 我要投稿
? 今天,發(fā)了最小生成樹的兩個(gè)算法,實(shí)在不想說話了,還剩最后一章《拓?fù)渑判颉?,就用這篇文章結(jié)束吧!
一.AOV網(wǎng)
? 簡單來說,就是一個(gè)有向無環(huán)圖,無回路。
? 在原神中,你要完成某個(gè)任務(wù),但會(huì)有一些前面的任務(wù)一直干擾著你,此時(shí),你不得完成前面任務(wù),才開始這個(gè)任務(wù),用圖表示出來,之后,你會(huì)想,我應(yīng)該怎么設(shè)計(jì)一個(gè)路線,完成所有任務(wù)呢?
? 其實(shí),任務(wù)表示出來的圖,就是AOV網(wǎng), 描述出來的的路線就是拓?fù)渑判虻慕Y(jié)果序列。
二.拓?fù)渑判?/span>
????每次將入度為0的點(diǎn)加入序列中,并修改后面的入度與出度可有深搜或廣搜來完成,(注:廣搜時(shí)應(yīng)用棧來實(shí)現(xiàn))
?代碼如下:
簡單,高效,使用的算法,復(fù)雜度為O(V+E)
三.AOE關(guān)鍵路徑
????
AOE關(guān)鍵路徑主要討論的完成一個(gè)工程至少需要多少天,在AOV網(wǎng)上完成,用拓?fù)渑判驅(qū)崿F(xiàn)
?1.最早發(fā)生與最早開始時(shí)間
????活動(dòng)k需要前面的事情完成,設(shè)前面的事情為earliest[j],現(xiàn)在的事情為earliest[k] 則earliest[k]=earliest[j]+完成earliest[j]的時(shí)間
2.最晚發(fā)生時(shí)間
? ? 考慮實(shí)際生活中,某些問題需要在最遲時(shí)間之前或現(xiàn)在完成,不然會(huì)影響工程的完成天數(shù),
設(shè)前面的事情為lastest[j],現(xiàn)在的事情為lastest[k]
lastest[n]=earliest[n]??
lastest[j]=min(lastest[k]-完成lastest[j]的時(shí)間)
由于前面的任務(wù)不是單一的,所以要取最小值
3.計(jì)算最早和最晚發(fā)生時(shí)間
? ?actearliest[i]=earliest[j]
? actlastest[i]=lastest[j]-完成j的時(shí)間
4.代碼實(shí)現(xiàn)
????有一點(diǎn)長,請(qǐng)分塊理解
都看到了這,三連再走吧!求求了!
想要觀看更多內(nèi)容,關(guān)注數(shù)學(xué)哪里出來!
標(biāo)簽: