基本模板
洛谷P1605
P1101
int search(int t)
{
if(满足输出条件)
{
输出解;
}
else
{
for(int i=1;i<=尝试方法数;i++)
if(满足进一步搜索条件)
{
为进一步搜索所需要的状态打上标记;
search(t+1);
恢复到打标记前的状态;//也就是说的{回溯一步}
}
}
}
注意点
-
第一个if是符合输出解的条件,第二个if是符合进一步搜索的条件;
-
下一步搜索时,不是使用return search(t+1),直接search(t+1);(新手可能会注意不到这个关键的地方,以至于每次写完不知道为什么只得到一个答案就返回主程序了)
-
for循环之后的if可以是多个;
-
for循环边界,例如:1>方向是四个,那么边界肯定就是4;(帖主用3,是因为从0开始的)2>素数环需要尝试1至20,那么边界就是20