摘要: 题目 费解的开关 题解 将第一层的状态确定下来,第二层就能确定,同理到最后一层也就确定了,所以只需要枚举第一层所有状态就可以确定步数,满足条件就存下步数,比较并选取最小步数,最后如果步数大于6输出-1。对于翻转操作,dx、dy可以很方便得对周围方格进行枚举,别忘了每枚举完第一层一个状态需要恢复到题目 阅读全文
posted @ 2025-03-05 21:04 PZnwbh 阅读(4) 评论(0) 推荐(0)
摘要: 题目 递归实现排列型枚举 题解 这道题其实就是求无重复元素的全排列问题,递归一般注意截止条件,这里的截止条件一定是全部遍历完了,因为顺序是乱的,所以我们应该不止拿个数组存储是否使用,还需要拿个数组存储路径,遍历一遍如果没被使用可以选择,然后进行下一个数的选择,此时dfs里面的参数u表示的是当前选了几 阅读全文
posted @ 2025-03-05 19:38 PZnwbh 阅读(11) 评论(0) 推荐(0)
摘要: 题目 递归实现组合型枚举 题解 可以参考上一题的递归代码,思路是一样的,也是拿个数组存储是否选了该位,多了一个参数记录选了几个,若选了cnt+1,否则直接cnt不变化。 注意观察递归从非递归是如何变化的。 参考代码(递归) #include<iostream> using namespace std 阅读全文
posted @ 2025-03-05 19:12 PZnwbh 阅读(17) 评论(0) 推荐(0)
摘要: 题目 递归实现指数型枚举 题解 由于书本的顺序,刚做完第一章可能会联想到用位运算这样的手法来遍历所有状态,因为他的范围不大,所以理论可以实现。但是题目要求用递归思路,所以我们用递归思路写一遍,递归有两条路往下,选当前位置和不选当前位置,我们不能一边输出一边选,这样会导致输出混乱,可以拿个数组来记录当 阅读全文
posted @ 2025-03-05 18:59 PZnwbh 阅读(19) 评论(0) 推荐(0)