posts - 195,  comments - 30,  trackbacks - 0
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);
posted on 2009-07-25 22:27 luis 阅读(231) 评论(0)  编辑 收藏 引用 所属分类: 搜索

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(3)

随笔分类

随笔档案

文章分类

文章档案

友情链接

搜索

  •  

最新评论

阅读排行榜

评论排行榜