随笔分类 - 迭代加深搜索
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 迭代加深搜索。 可以想见最后深度不会很深吧。。 然后皇后之间互相攻击到是允许的。。 就这样 【代码】 cpp / 1.Shoud it use long long ? 2.Have you ever test several s
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 IDA 保证这次移动的方格不和前一次重复。 然后加一个8数码的剪枝就行了。 看看当前状态和目标状态有多少个地方是不一样的。 如果当前的步数加上它仍然比答案大。 显然可以剪枝。 因为不同的数目肯定小于等于要移动的数目; (每次移动
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 迭代加深搜索。 枚举最大层数。(也即改变的数字个数 然后枚举第一个改哪个数字,第二个改哪个数字。。 一定要注意字典序问题。 每次优先改成较小的字典序(也即顺序枚举 然后注意这个字符不改的情况。 不要算改变数。 最后改完之后。 只
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 迭代加深搜索。 枚举最大量maxdep 在dfs里面传剩余的要凑的分子、分母 以及上一次枚举的值是多少。 然后找到最小的k,满足1/k剪枝就是剩余的全都用这个最大的分数。如果都不行就肯定不行了。 二分找这个k. 不能用的数字就直
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 结论:每次只用新生成的数字就好了。 然后就是IDA 了。 迭代深搜+剪枝。 【代码】 cpp / 1.Shoud it use long long ? 2.Have you ever test several sample(at
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 迭代加深搜索。 每次抽动操作最多只会让中间那一块的区域离目标的“距离”减少1. 以这个作为剪枝。 枚举最大深度。 就能过了。 【代码】 cpp include include include include include us
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 迭代加深搜。 很容易想到,最多只要搜8层就可以得到答案了 最多8下肯定可以还原。 则枚举一下最大层数。然后做个深搜就好。 优化。 设0..n每个数字的后继不为a[i]+1的个数为cnt 则每次操作显然最多只能减少3个cnt..
阅读全文