![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 67
十有久诚
知道的越多,不知道的越多
展开
-
回溯法:回溯法通用模版汇总以及模版应用
回溯法的本质回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法高效一些,可以加一些剪枝的操作,但也改不了回溯法就是穷举的本质。那么既然回溯法并不高效为什么还要用它呢?因为没得选,一些问题能暴力搜出来就不错了,撑死了再剪枝一下(但最坏时间复杂度一般来说还是),还没有更高效的解法。原创 2024-02-03 22:32:31 · 993 阅读 · 1 评论 -
约束满足问题:特殊约束-资源约束
资源约束, 有时称为atmost约束。原创 2024-01-21 20:32:00 · 413 阅读 · 0 评论 -
回溯法:澳大利亚地图染色问题及伪代码(模版)
澳大利亚地图染色问题: 用红绿蓝3色标出各省, 相邻者颜色不同。原创 2024-01-21 17:53:02 · 456 阅读 · 1 评论 -
回溯法:N皇后问题
八皇后问题是十九世纪著名的数学家高斯于1850年提出的。• 问题是:在8×8的棋盘上摆放八个皇后, 使其不能互相攻击, 即任意两个皇后都不能处于同一行、 同一列或同一斜线上。• n皇后问题:即在n× n的棋盘上摆放n个皇后, 使任意两个皇后都不能处于同一行、 同一列或同一斜线上。原创 2024-01-20 20:51:42 · 1256 阅读 · 2 评论 -
回溯法:回溯法暴力模版以及模版应用
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4]]很容易想到 用两个for循环就可以解决。如果n为100,k为50呢,那就50层for循环,是不是开始窒息。此时就会发现虽然想暴力搜索,但是用for循环嵌套连暴力都写不出来!原创 2024-01-20 17:28:51 · 843 阅读 · 2 评论 -
回溯法:0-1背包问题
给定种物品和一背包。 物品的重量是, 其价值为,背包的容量为 c。 问应该如何选择装入背包中的物品,使得装入背包中物品的总价值最大?注意物品不重复!原创 2024-01-19 22:22:20 · 432 阅读 · 0 评论 -
计数排序(线性时间排序)
(1)找出待排序的数组中最大和最小的元素(2)统计数组中每个值为i的元素出现的次数,存入数组C的第i项(3)对所有的计数累加(从C中的第一个元素开始,每一项和前一项相加)(4)反向填充目标数组:将每个元素i放在新数组的第C(i)项,每放一个元素就将C(i)减去1原创 2024-01-19 17:40:32 · 379 阅读 · 0 评论 -
贪心算法:活动选择问题以及贪心选择性质证明
– 贪心选择特性:全局的最优解可以通过局部的最优(贪婪) 选择得到.• 动态规划需要检查子问题的解。– 最优子结构: 问题的最优解包含了其子问题的最优解.• 例如, 如果 A 是S的最优解, 那么 A ' = A - {1} 是 的最优解.• 贪心算法 (试探) 并不能总是得到最优解.原创 2024-01-05 18:16:40 · 2431 阅读 · 3 评论 -
约束满足问题改进技术:基于变量和赋值次序的启发式
回溯搜索的通用算法的问题与改进思路• 需改善无信息回溯搜索算法的性能。• 通用改进方法的思路:– 下一步该给哪个变量赋值, 按什么顺序给该变量赋值?– 每步搜索应该做怎样的推理? 当前变量的赋值会对其他未赋值变量产生什么约束, 怎样利用这种约束以提高效率。– 当遇到某个失败的变量赋值时, 怎样避免同样的失败? 就是说如何找到对这种失败起到关键作用的某个变量赋值。原创 2024-01-03 22:10:52 · 474 阅读 · 0 评论 -
约束满足问题简介
约束满足问题(Constraint Satisfying Problem, CSP)– 由一个变量集合和一个约束集合定义;– 每个变量都有一个非空可能值域;– 每个约束指定了包含若干变量的一个子集内各变量的赋值范围。例如: 地图染色问题, N-皇后问题。原创 2024-01-03 21:53:08 · 494 阅读 · 2 评论 -
算法问题:传教士与野人过河问题
一般的传教士和野人问题(Missionaries and Cannibals):有N个传教士和C个野人来到河边准 备渡河。河岸有一条船,每次至多可供K人乘渡。 问传教士为了安全起见,应如何规划摆渡方案,使 得任何时刻,在河的两岸以及船上的野人数目总是 不超过传教士的数目,但允许在河的某一岸只有野 人而没有传教士。原创 2023-11-30 21:35:16 · 1352 阅读 · 0 评论 -
动态规划:汉诺塔问题
游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。原创 2023-11-28 12:29:33 · 394 阅读 · 1 评论 -
PAT甲级 1053 Path of Equal Weight(Java语言)
【代码】PAT甲级 1053 Path of Equal Weight(Java语言)原创 2023-09-01 22:18:37 · 45 阅读 · 0 评论 -
PAT甲级 1102 Invert a Binary Tree(Java语言)
【代码】PAT甲级 1102 Invert a Binary Tree(Java语言)原创 2023-09-01 16:22:57 · 48 阅读 · 0 评论 -
模版系列---前序(后序)序列生成二叉树/后序(前序)序列(PAT A1086)
此处结点类为实现代码。原创 2023-07-25 19:04:02 · 115 阅读 · 0 评论 -
模版系列---二叉树前、中、后序统一迭代法(再包装法--更易理解的办法!)
这是个人喜欢的叫法(我也不知道是否有官方说法O(∩_∩)O),也较易记住要领,再包装法在其他地方也非常巧妙,比如求树的最小高度。原创 2023-05-09 21:10:49 · 55 阅读 · 1 评论