2012年9月10日

HDU 1258 Sum It Up(Dfs)

摘要: 题目:http://acm.hdu.edu.cn/showproblem.php?pid=1258题意:sum n n个数,输出所有和为sum的组合,要非递增且不能重复如第三个样例:本来可以有多个50+50+50+50+50+50+25+25+25+25,但是只输出了一个这里有两点:1~怎么输出非递增的组合。。。。由于他输入就按非递增的了。。。所以我Dfs的for()从最后一个被用的下一位开始找。。。。保证下一个数是在目前最后一个被用的数字的后面。。。2~怎么判重,本来可以求SUM然后从低位像a+b*sum+c*sum*sum的形式Hash,但是1000^12太大了。。。,由于最多只有12个数 阅读全文

posted @ 2012-09-10 21:13 [S*I]SImMon_WCG______* 阅读(628) 评论(0) 推荐(0) 编辑

HDU 4277 USACO ORZ(Dfs)

摘要: 题目:http://acm.hdu.edu.cn/showproblem.php?pid=4277题意:给你n个数,要你用光所有数字组成一个三角形,问能组成多少种不同的三角形发现自己弱爆了。。。。Dfs()超级弱。。。。分析:每个数字一定在其中一条边,所以枚举所有数字的位置。。3^15暴搜,根本不需要什么used[]。。。到所有数字都用完后,即到出口的时候,除去相同的三角形,重要的剪枝:a<=b<=c(看起来像没什么用,但是这是关键),且a,b,c都不等于0,然后a + b*sum +c*sum*sum来构造一个唯一值再用set来计算总个数。。。。。不要小看一些不起眼的剪枝。。。。 阅读全文

posted @ 2012-09-10 16:17 [S*I]SImMon_WCG______* 阅读(437) 评论(0) 推荐(0) 编辑

导航