CF1847E 做题记录
依托题。link
第一个想法是依次询问所有 \((i, i + 1, i + 2)\),但不合法三角形种数过多,不容易搜索。
思考剩下 \(500\) 次询问能干什么,一定是一个相对具体的、独立的算法过程。
还是需要先寻找具体的突破口,考虑询问一个等边三角形,得到结果后很容易得知其边长,且是唯一的。
根据鸽巢原理,前 \(9\) 条边中必定存在三条长度相等的边,若 \(n < 9\) 暴搜是容易的。
令 \(w\) 为等边三角形边长,我们可以充分利用这三条确定的长度为 \(w\) 的边。
若 \(w \ge 2\),那么询问 \(w, w, x\) 可以快速得知 \(x\) 的值。
若 \(w = 1\),先去掉所有长度为 \(1\) 的边。对于剩下的边,可以继续类比。
若存在两条等长的边,和 \(1\) 拼起来是一个等腰三角形,且是可以快速得知的唯一的。就可以转化为 \(w \ge 2\) 的情况。
根据鸽巢原理,前 \(4\) 条边中必定存在等长的一对边,若少于 \(4\) 暴搜是容易的。
- 启示:构造/交互寻找最直接的突破口,比如这题是询问一个等边三角形以得知三条长度相等的边,用这三条长度相等的边去询问其他边,进而得出更多的分类讨论。

浙公网安备 33010602011771号