算法导论第三版 16.1-5习题答案
16.1-5
這題實(shí)際是帶權(quán)的活動(dòng)求取最大權(quán)重的活動(dòng)選擇問(wèn)題,使用動(dòng)態(tài)規(guī)劃求解。如果有心學(xué)好的動(dòng)態(tài)規(guī)劃的同學(xué)可以去 “ B站上搜 ’ 動(dòng)態(tài)規(guī)劃(第1講) ‘,選擇作者是:正月點(diǎn)燈籠的視頻 ” 看看,他的這個(gè)視頻講解的就是這個(gè)問(wèn)題的求解,簡(jiǎn)單易懂。
答案:
首先,活動(dòng)集中的活動(dòng)已經(jīng)按照結(jié)束時(shí)間先后順序進(jìn)行了排序;
其次,定義兩個(gè)數(shù)組R[1…n];pre[1…n] (其中,n為活動(dòng)集的規(guī)模)。R[]數(shù)組存放的是權(quán)重和的最大值,例如R[j]表示j活動(dòng)及其之前活動(dòng)的權(quán)重和的最大值;pre[i]數(shù)組存放的i活動(dòng)前面與i活動(dòng)兼容的且最鄰近的活動(dòng)。
最后,就是選擇問(wèn)題。(1)如果選當(dāng)前的活動(dòng),那么就是該活動(dòng)的權(quán)值加上與該活動(dòng)之前的兼容的活動(dòng)權(quán)重;(2)如果不選當(dāng)前活動(dòng),那么就是求解該活動(dòng)的下一個(gè)活動(dòng),執(zhí)行(1)操作
可以寫出遞推式:
偽代碼如下:
總結(jié)
以上是生活随笔為你收集整理的算法导论第三版 16.1-5习题答案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 阿里云轻应用服务器 宝塔面板 mongo
- 下一篇: oracle监听无法启动常用解决办法