1 条题解
-
1
X8G 俄罗斯蓝猫 题解
比较简单的做法。
满分做法要求:
- 不超过两次询问
- 每次询问不超过 个二元组
- 不能重复询问一个二元组多次
- 二元组两个元素不能相同
不妨先满足条件一二五,放宽条件三四,因为条件一二五不好卡,条件三四可以卡。
两次询问容易想到一次菊花一次环,二元组数量分别为 和 。
做法一
菊花:,询问 。
环:,询问 ,另外再询问 。
通过菊花的返回值,容易获知 。
通过环的返回值,容易获知 。
这两个值可以进一步得到 和 。
由于 对于 的值域十分稀疏,可以认为任意两个数的和不会相同。
在 中枚举 ,判定标准就是 出现在环的返回值中,紧接着就可以枚举确定 ,依次类推。
此做法时间复杂度 。存在的问题是:在第一次枚举中可能枚举到 ,导致 整体翻转。
做法二
为了对 和 加以区分,稍稍修改询问,并使其满足条件三。
菊花:,询问 。
链:,询问 。
环的询问被改为链的询问。信息 仍然是必需的,所以可以在菊花的返回值中枚举哪一个返回值对应着 。随后再套用做法一。
此做法时间复杂度 。存在的问题是:二元组 在两次询问中同时出现了。
做法三
在菊花的询问中去掉 ,使其满足条件四。
菊花:,询问 。
链:,询问 。
再模仿做法二解决问题的办法绕一步:在链的返回值中枚举哪一个返回值对应着 。随后再套用做法二。
此做法时间复杂度 。
可以加点剪枝。注意到 有整数解的条件为 是 的倍数。这个条件随机情况下成立的概率很小,所以实际效率类似于时间复杂度 。
- 1
信息
- ID
- 115
- 时间
- 7500ms
- 内存
- 512MiB
- 难度
- 9
- 标签
- 递交数
- 161
- 已通过
- 16
- 上传者