- 博客(9)
- 收藏
- 关注
原创 最长上升子序列
摘要 本文讲解最长上升子序列(LIS)问题的动态规划解法。题目要求在给定序列中找到最长的严格递增子序列。采用线性DP方法,使用dp数组记录每个位置能构成的最大子序列长度。通过双重循环比较元素并更新dp值,最终输出最大值作为答案。文章包含示例分析、思路讲解和C++代码实现,指出这是经典的线性DP入门题,适合练习动态规划基础。时间复杂度为O(n²)。
2025-07-20 17:44:07
325
原创 [USACO1.5] 八皇后 Checker Challenge
摘要:本文介绍了经典的八皇后问题解法,使用深度优先搜索(DFS)算法在n×n棋盘上寻找满足条件的皇后布局。关键点在于如何判断对角线冲突:通过观察发现,同一对角线上的点x+y或x-y值相等。代码实现中使用了三个数组分别标记列、主对角线和副对角线的占用情况,DFS递归搜索所有可行解,并按字典序输出前三个解及总解数。该问题展示了如何将数学规律转化为编程算法,是训练搜索技巧的典型例题。
2025-07-15 17:00:03
694
1
原创 红与黑(DFS)
这篇题解介绍了"红与黑"瓷砖问题的解题思路。题目要求计算从起始点'@'出发,在只能移动相邻黑色瓷砖'.'的情况下,能到达的瓷砖总数。作者建议使用void型DFS递归遍历,每走一步对全局计数变量增值,并注意处理多组数据输入和初始化。关键点包括:标记已访问瓷砖、边界条件判断以及数据重置。文末提供了完整C++代码实现,强调要注意判断条件和数据范围。
2025-07-10 21:09:35
347
原创 马走日(DFS)
这篇文章介绍了中国象棋中马走日字形的遍历问题解法。作者使用深度优先搜索(DFS)算法,通过方向数组处理马的8种移动方式,在n×m棋盘上寻找不重复遍历所有点的路径总数。解题思路包括:确定马的移动规则、设计DFS搜索过程(参数为坐标和步数)、处理多组测试数据并初始化棋盘。最后提供了完整的C++代码实现,包含主循环、DFS函数和输出结果。文章采用Markdown格式,适合算法初学者学习DFS应用。
2025-07-10 16:19:17
228
原创 [NOIP 1994] 删数问题
摘要:本文讨论洛谷#P1106删数问题,要求从高精度正整数中删除k位后得到最小数。作者最初采用贪心算法,逐个删除比后一位大的数字,但忽略了前导零问题,导致第7个测试点WA。发现问题后,作者在输出前添加了处理前导零的代码段,成功通过测试。该问题考察了贪心算法的应用和对特殊情况的处理。
2025-07-06 17:58:58
180
1
原创 程序题 P11227 [CSP-J 2024] 扑克牌 【新鲜der题解】
P11227 C++程序题题解,使用多种方法,分别对应各个阶段的知识点。
2024-11-03 16:49:17
752
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人