uva--307+dfs

题意:

   给定一堆长度小于50的木棒,这些木棒是由长度相同的几根木棒切割而成的,要求求出原木棒的最小长度。

思路:

  直接由小到大的枚举原木棒的长度,然后dfs,但要注意剪枝,不然会超时;下面代码列出三处剪枝。


代码如下:


#include
#include
#include
#include
using namespace std;

int a[100],cnt,n,vis[100],side,flag,flag2;

int cmp(int a,int b)
{
    return a>b;
}

void dfs(int cur,int num,int sum)
{
    if(num==cnt-1)
    {
        flag=1;
        return ;
    }
    int i,j,k;
    for(i=cur;i


你可能感兴趣的:(搜索)