摘要: 原题链接 考察:dfs + 剪枝 思路: 搜索顺序是枚举每一个有颜色的格子左右移动的操作,时间复杂度是O(352*5).需要剪枝: 搜索顺序剪枝,这个应该没有 最优性剪枝.因为我们需要的是字典序最小的序列,也就是列坐标越小越好.可以先枚举列再枚举行,这样如果返回1就一定是最小的. 还有一个最优性剪枝 阅读全文
posted @ 2021-03-10 21:59 acmloser 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:dfs+剪枝 思路: 从最后一列开始dfs,用bool 数组记录哪些数字被使用了即可.接下来思考如何剪枝: 搜索顺序剪枝: 从大到小枚举,大数字在低位可能性较大. 冗余处理:这里是排列型枚举. 可行性剪枝:比较关键,需要两个剪枝:高位无进位. 从第1列~第n列检查是否符合实际. 最优 阅读全文
posted @ 2021-03-10 12:21 acmloser 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:dfs 不看算法标签完全看不出是dfs系列 思路: 枚举每一个点选与不选的集合.依次考虑几个剪枝: 搜索顺序剪枝,可能要按点权值和排序?,这样写挺麻烦的= = 最优性剪枝,这里本蒟蒻不知道怎么剪,可能存在选d较小,选c较大,但是选d a是ans的情况. 可行性剪枝,如果算出来加入这个 阅读全文
posted @ 2021-03-10 09:18 acmloser 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:dfs+剪枝 思路: 很像小猫爬山的分组问题,但这里只考虑一组.涉及剪枝: 排除冗余:组合型枚举 最优剪枝: 如果前面所有物品和+当前w都<ans return 搜索顺序剪枝:很明显从大到小搜索. 注意这道题最优性剪枝不能是当前w<ans return. 因为可能n个小的拼凑出更大的 阅读全文
posted @ 2021-03-10 01:20 acmloser 阅读(23) 评论(0) 推荐(0) 编辑