N[i]中四個值,begin,end,p,vnow,五個值也行,value為=(end-begin)*p。
1,不剪枝也能過。
2,如果剪枝,
根據(jù)回溯的過程,會先求到dfs(n)最后那個結(jié)點,再是dfs(n-1)..dfs(1)。
剪枝應(yīng)當(dāng)是在結(jié)構(gòu)體中N[i]增加一個變量vnow,
vnow初值為0,記錄從該結(jié)點開始搜索所有int dfs(i)的返回值,并不斷更新使其最大,
當(dāng)搜索到i的時候,如果N[i].vnow不為0,則需要滿足N[i].vnow+當(dāng)前temp(前面的可行系列的總值)>vmax(所要求的最大值的當(dāng)前值),若vnow為0,則可以不滿足這個條件,因為這是第一次。
根據(jù)回溯的過程,第一次求得的結(jié)果是dfs(n),接下來是dfs(n-1),接下來是dfs(n-2)-------最后dfs(0);
posted on 2009-07-25 22:27
luis 閱讀(251)
評論(0) 編輯 收藏 引用 所屬分類:
搜索