关于DFS的总结和简单应用
说实话,我练了那么久搜索题,总该得到一些东西。今天,我千(bai)思(du)万(yi)想(xia),还是决定总结出一套模板来。
目前,我做dfs的类型一般都是借助递归的方法来实现的,因为用递归的方法比较容易理解。
所以递归方式的dfs模板如下:
(type) dfs(parameter)//注意在需要剪枝的情况下,可能需要把各种参数都写在函数上
{
if(搜索到了)
{
cout......//可能需要输出什么东西
return type;
}
else
{
继续搜索
}
}
OK,写完了模板,下面就让我们来应用一下把。(看题)
组合数
描述
找出从自然数1、2、… 、n(n<10)中任取r(r<=n)个数的所有组合。
输入
输入n、r。
输出
按特定顺序输出所有组合。
特定顺序:每一个组合中的值从大到小排列,组合之间按逆字