摘要: Dfs: 深度优先搜索. 它是将当前状态按照一定的规则顺序,先拓展一步得到一个新状态,再对这个新状态递归拓展下去。如果无法拓展,则退回一步到上一个状态,再按照原先设定的规则顺序重新寻找一个状态拓展。如此搜索,直至找到目标状态,或者遍历完所有状态。所以,深度优先搜索也是一种“盲目”搜索(一条路走到黑) 阅读全文
posted @ 2022-08-23 21:13 shanyingrui 阅读(23) 评论(0) 推荐(0) 编辑
摘要: next_permutation函数将按字母表顺序生成给定序列的下一个较大的排列,直到整个序列为升序为止。prev_permutation函数与之相反,是生成给定序列的上一个较小的排列。 这是一个求一个排序的下一个排列的函数,可以遍历全排列,要包含头文件<algorithm> 使用方法:next_p 阅读全文
posted @ 2022-08-23 20:56 shanyingrui 阅读(212) 评论(0) 推荐(0) 编辑
摘要: [2002年NOIP普及组] 选数 思路:从第一个数a[1]开始深搜,数字u个数+1,可以选择让它参与序列或不。 若它参与,则数字和sum+a[u],要与k比较的nums+1(表示序列的个数);反之,不改变; 最后使各个数字分别排列组合成新的序列.新的序列必须满足和为素数才算数,最后输出满足条件的序 阅读全文
posted @ 2022-08-23 17:07 shanyingrui 阅读(239) 评论(0) 推荐(0) 编辑
摘要: N皇后问题 已知在 N*N 的棋盘上放置 N 个皇后(n<=10)而彼此不受攻击(即在棋盘的任一行,任一列和任一对角线上不能放置 2 个皇后). 思路: 定义一个函数,函数里的变量用于计数。数组用于放数,数组b表示位置标记(使皇后互不攻击)。从第一个皇后开始深搜,搜索时运用回溯判定即可。然后就是找出 阅读全文
posted @ 2022-08-23 16:40 shanyingrui 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 全排列问题 思路: 定义一个函数,函数里的变量用于计数。数组a用于放数,数组b表示位置标记(为了方便在一个序列中数字不重复)。从1开始深搜,搜索时运用回溯判定即可。然后就是找出口,出口当然是搜索次数 大于n或者等于n + 1的时候,进行输出。 #include<iostream> #include< 阅读全文
posted @ 2022-08-23 14:22 shanyingrui 阅读(14) 评论(0) 推荐(0) 编辑