摘要: 原题链接 考察:dfs+剪枝 错误思路: 用bfs解此题,会WA,因为我们要时间为T时刚刚好到达,bfs是最短时间.这道题需要我们在D周围绕圈子 思路: 直接暴力TLE了.所以需要一些剪枝. 当时间==T时回溯 这个剪枝比较关键,奇偶剪枝,如果S坐标之和的奇偶与D奇偶相同,说明我们到达D需要偶数步, 阅读全文
posted @ 2021-03-09 23:11 acmloser 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:dfs+剪枝 思路: 首先明确暴力的思路,我们枚举每一层的r与h,求出所有满足V=N的表面积(dfs本质是暴力,我们所要做的就是剪枝).接下来考虑一些剪枝: 搜索顺序的剪枝.当我们当前枚举的体积很大时,剩下能找的r、h体积就必须尽量小,这样可以优化搜索顺序. 最优性剪枝:当s>=an 阅读全文
posted @ 2021-03-09 21:38 acmloser 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:dfs+剪枝 思路: 写dfs先定搜索顺序,很明显我们需要枚举和,一共64个木棒,如果暴力枚举是264,必然TLE,因此在枚举和时就需要优化.可以发现如果这些木棒能拼成等长的大木棍,那么所有木棒的和一定是大木棍的倍数.由此我们只需要枚举sum的约数.定下搜索顺序后,就是将木棒分成等长 阅读全文
posted @ 2021-03-09 15:10 acmloser 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:dfs+剪枝 错误思路: 一开始是想按行搜或者九宫格搜.但是只能想到每九个格子搜一次看有哪些数字,再dfs 没想到位运算优化. 正确思路: 预处理每行、每列、每个九宫格有哪些数字.用8位二进制数表示哪些数字被使用了(本每次找九格用位运算优化到O(1)).每次搜索找到分支最少的格子搜( 阅读全文
posted @ 2021-03-09 08:09 acmloser 阅读(34) 评论(0) 推荐(0) 编辑