Viaky
Hope,is there.

最近的状态有些提升。但愿不是我的心里作用。

我没有按照昨天的预言暴0。分数在一点一点的提高。

首先是第一题的sum。一开始看到数据范围就想到弄到70分就ok了。

朴素算法没想到多卡了一个点。出乎意料的80分。

第二题有些类似于poj的小木棍。

但比那题简单的是给出了需要拼接出的木棍长度。

最原始的DFS打得还算是成功。样例以及自己所测的一些数据都通过了。

但最后只过了一个点这是没有想到的。

按理说毫无剪枝的算法应该超时而不是输出错误的答案。

按照兆兆童鞋+题解所说的剪枝,

1、 对于木材的总长度不能被4整除的——No。【这点想到了】

2、 对于木材中最长边大于边长的——No。

3、 将木材按长度排序,对于每一条边合成的过程中所用的木材长度,都要是从长到短的,

例如如果(8 5 3)不可以,那么(8 3 5)同样也不可以,我们便没有必要去搜索。【这点是最重要的】

4、 如果回溯的时候回溯到了某一条边的第一个点,则之前确定的方案不成立。

【因为既然回溯了那么这个方案一定是错误的】

5、如果搜到一个剩余量时,用可以放进去的最长的木棒放进去仍然有剩余,则更小的也就不用试了。

6、设置递归层数限制【防止超时】

  可以用动态规划装满背包地方法进行骗分,如果从大往小装,可以过九个点……

第三题floyd+DFS

当时用到了floyd,仅仅是为了那30分p=1的情况。

1~p最小路径+p~n的最小路径。

可惜只过了一个点。

其实用到了floyd再加上p个点全排列。将各种状态的最优值保存即可。

又死在全排列上了。。。。。

第四题。。啊。。

数据弱到了就算读不懂题目也能满分。。

不过也是出乎意料的DFS出了三个点。

用二维背包的方法也很好理解。

总的来说。最近总算能够独自编出正确的搜索题目。所剩下的就是优化策略了。

posted on 2011-06-15 17:12  Viaky  阅读(167)  评论(2编辑  收藏  举报