专栏文章
题解:P13381 [GCJ 2011 #3] Mystery Square
P13381题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mio07f2r
- 此快照首次捕获于
- 2025/12/02 11:13 3 个月前
- 此快照最后确认于
- 2025/12/02 11:13 3 个月前
翻译一下附件里的题解。
直接枚举 种情况不可能,所以考虑分治。
设问号数为 ,,下文中 为 代表的数。
记最低 位为低位,其他为高位。
我们有两种算法。
算法 1:从顶到底的搜索
此算法用于解决高位的问号数较少的情况。
搜索前一半的问号,直到剩下最低 位。
设 为此时把低位所有
? 设为 的值, 为此时把低位所有 ? 设为 的值。那么可能的 范围显然为 。然后你会发现,如果 与 同时在范围内,则 。
但是因为 所以 ,所以范围内至多只有一个数,配合 的开根可以做到 。
算法 2:从底到顶的搜索
此算法用于解决低位的问号数较少的情况。
首先我们假设 ,因为对于 的情况,直接把最低的 位设成 然后砍掉递归即可。
然后我们考虑如何用模 可能作为答案的 推出模 可能作为答案的 。
令 ,,我们有 。
不妨假设 ,即 ,对于 直接枚举一下即可。
然后可以得到
又因为 ,所以 ,即我们可以确定 的奇偶性,那么就可以求出模 意义下 的值。
那么我们只需要让 ,这时因为 ,所以直接把模 意义下的可能作为答案的 检查即可,并且由这个可以看出是 与 是一一对应的。
于是我们只需要搜索 种情况并且边搜索边算出 即可。
然后再考虑一下加上递归的总复杂度,你会发现这个总复杂度会是 的。
两个算法拼起来,总复杂度为 ,可以通过。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...