DFS HDU 1518 Square
摘要:
因为n<=20,较小,用DFS,但是要剪枝,不然就TLE这个题是校队讨论时ZZM说的,然后里面有讲到一种错误的思路,用0-1背包恰好背满边长,边长的2倍 ,边长的三倍,边长的四倍事实上,如果数据是7 7 2 1 7 8就是一个反例,每种都能背满,但是无法构成四边形。然后我自己先写了一个DFS,用四个数d1,d2,d3,d4来存状态,对于每根棍子,有四种可能,分别是放d1,d2,d3,d4里,再往里搜,回退的时候,d1,d2,d3,d4回到原来的状态。一个剪枝是当d1,d2,d3,d4中出现大于边长的值就return,不往下搜了。还有就是已经搜到可行解了,也不搜了。这样最坏情况下复杂度为O 阅读全文
posted @ 2013-04-25 18:56 allh123 阅读(174) 评论(0) 推荐(0) 编辑