joj 1077 Transportation 回溯 剪枝

joj 1077 Transportation 回溯 剪枝
N[i]中四个值,begin,end,p,vnow,五个值也行,value为=(end-begin)*p。 
1,不剪枝也能过。

 2,如果剪枝,
根据回溯的过程,会先求到
dfs(n)最后那个结点,再是dfs(n-1)..dfs(1)
剪枝应当是在结构体中
N[i]增加一个变量vnow,
vnow
初值为0,记录从该结点开始搜索所有int dfs(i)的返回值,并不断更新使其最大,
当搜索到
i的时候,如果N[i].vnow不为0,则需要满足N[i].vnow+当前temp(前面的可行系列的总值)>vmax(所要求的最大值的当前值),若vnow0,则可以不满足这个条件,因为这是第一次。

根据回溯的过程,第一次求得的结果是 dfs(n), 接下来是 dfs(n-1) ,接下来是 dfs(n-2)------- 最后 dfs(0);

你可能感兴趣的:(joj 1077 Transportation 回溯 剪枝)