題目涉及到的描述看起來非常多,要滿足很多的條件,大致意思就是有N個(gè)節(jié)點(diǎn),編號(hào)是從0...N-1,然后一開始從0節(jié)點(diǎn)出發(fā),要遍歷每個(gè)節(jié)點(diǎn)一次,有且只有一次,不能重新返回已經(jīng)查看過的節(jié)點(diǎn),另外,從一個(gè)節(jié)點(diǎn)到另一個(gè)節(jié)點(diǎn)要花一定的錢以及一些天數(shù),另外還有一個(gè)條件是他是從星期一開始出發(fā)的,問你最后遍歷完所有節(jié)點(diǎn)后,并且返回到初始節(jié)點(diǎn)后,首先判斷是否能夠返回到初始節(jié)點(diǎn),如果能,那么能否在星期六或星期日到,如果能,那么最小花的錢數(shù)又是多少!
這種題目,是個(gè)狀態(tài)dp的題,用位來節(jié)點(diǎn),那么設(shè)置一個(gè)dp[1<<N][N][7] 第一維表示已經(jīng)訪問過的節(jié)點(diǎn),第二維表示當(dāng)前要訪問的節(jié)點(diǎn),第三維表示是星期幾,本身的值代表要花的錢,那么過后就很好做了!這樣設(shè)置之后,然后用spfa可以推出這個(gè)答案了!
關(guān)鍵還是思路啊,思路對了,然后實(shí)現(xiàn)起來也會(huì)方便很多吧!