随手一发板子
  • 板块灌水区
  • 楼主Exsinly
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/11/13 21:31
  • 上次更新2024/11/13 21:39:19
查看原帖
随手一发板子
426631
Exsinly楼主2024/11/13 21:31

基本的深搜模板:

int search(int t)

{

    if(满足输出条件)
    {
        输出解;
    }
    else
    {
        for(int i=1;i<=尝试方法数;i++)
            if(满足进一步搜索条件)
            {
                为进一步搜索所需要的状态打上标记;
                search(t+1);
                恢复到打标记前的状态;//也就是说的{回溯一步}
            }
    }

}

###整个模板有几个地方需要注意:

1.第一个if是符合输出解的条件,第二个if是符合进一步搜索的条件;

2.下一步搜索时,不是使用return search(t+1),直接search(t+1);(新手可能会注意不到这个关键的地方,以至于每次写完不知道为什么只得到一个答案就返回主程序了)

3.for循环之后的if可以是多个;

4.for循环边界,例如:

1>方向是四个,那么边界肯定就是4;(帖主用3,是因为从0开始的)

2>素数环需要尝试1至20,那么边界就是20;

2024/11/13 21:31
加载中...