摘要: /*简单DFS题目链接地址:http://acm.hdu.edu.cn/showproblem.php?pid=2616*/#include<iostream>using namespace std;#define maxn 11#define INF 0x3f3f3f3fint arr[maxn],w[maxn],n,m,count;bool flag,visited[maxn];void dfs(int i,int rest,int num){ if(flag && num >= count) return; if(num > n) return; 阅读全文
posted @ 2012-10-14 22:56 sorryhao 阅读(193) 评论(0) 推荐(0)
摘要: /*DFS好题Date: 2012/10/14题目链接地址:http://poj.org/problem?id=1011 http://acm.hdu.edu.cn/showproblem.php?pid=1455思路:首先可以确定的是,木棍初始值的长度肯定是所有木棍段之和(假设为sum)的约数,木棍初始值的最小值 为给定木棍段的最大值(假设为max),木棍初始值的最大值为所有木棍段之和。所以从max到sum之间依次 判断是sum约数的长度是否满足题目要求即可 先给木棍段从大到小排序,这对以后的剪枝有帮助 剪枝1:在刚开始组成一个初始木棍的时候,如果某木棍段的长度小于初始木棍的长度且不满足的话 阅读全文
posted @ 2012-10-14 22:53 sorryhao 阅读(164) 评论(0) 推荐(0)
摘要: /*DFS2012亚洲区域赛长春赛区现场赛C题Date: 2012/10/14题目链接地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3657一开始因为题目理解错误(以为是题目错了)导致wa了n次,后来在看了n遍题目之后恍然大悟,输入的是Alice已经去过的山和摘的蘑菇数,没有去过的山Alice可能去摘也可能不去摘,去摘的话,摘的数量是在[0,2012]之间的这样让你求Alice回家能带的最大蘑菇数量思路:1.当n = 0,1,2,3时,最大值应该是1024,比如n = 3,假设摘的数分别为a,b,c;那么任选其中 阅读全文
posted @ 2012-10-14 21:27 sorryhao 阅读(361) 评论(0) 推荐(0)