题解:P7195 [IOI2019] 折线
WC2025 讲,遂写题解。
做法 1
考虑使用绕圈圈方法,第一步从
理想情况下每个折线可以达到一个点。
做法 2
刚才那个东西显然无法处理
思考一下为什么。我们从一个点绕进去了以后,到达了当前所有未遍历点的右上角。此时你无法通过延长上一条直线来节省步数。
同样的情况还有,当我们来到
考虑单独设计一个做法求这个构造。从左下角遍历到右上角就可以了。
做法 3
考虑把刚才两个东西缝起来。能绕就绕,不能绕就先把这个点删掉然后加入两个队列中的一个。
这两个队列分别是一条从左下到右上的线和从左上到右下的线。
绕完以后把这两个队列走一遍即可。精细实现可以做到步数