P6742 [BalticOI 2014 Day2] Portals 题解补充
本题所有题解对于 使用传送门时发射两个门只用在同一个位置的最优性 都没有证明,均使用了显然或者直接给出这样的连边方式。
证明如下:
首先令一次传送过程的进入传送门的格子为入门
下面我们先证明上一次的入门
- 若再次作为入门使用,那么假设我们在
P_1 处打出下一次的出门O_1 ,那么再次使用I_0 走到O_1 ,从上一次进入I_0 开始计算,时间为1+dis_{O_0,P_1}+dis_{P_1,I_0}+1 。
若dis_{O_0,P_1}<dis_{P_1,I_0} ,那么考虑让I_1=O_0 ,小于上述时间。
若dis_{P_1,I_0}\le dis_{O_0,P_1} ,则不走前一次传送门,直接从I_0 走到P_1 ,打完O_1 再走回来进入I_0 ,小于上述时间。 - 若再次作为出门使用,由于 1,所以若再次使用上一次的
I ,则一定都是作为出门使用。
考虑第一个不作为出门使用的I_n (最后一次传送的入门一定不作为出门使用),在此之前,I_i=O_{i+1} 。
因为I_n\rightarrow O_n 之后,一定不会再次使用I_n 及之前的传送门,所以可以直接考虑I_1\rightarrow O_n 的路径可以直接省略为I_1\rightarrow I_{n-1}=O_n 并直接走就行,显然比作为出门使用步数少。于是可以回溯到I_0 也不作为出门使用。
再次证明上一次的出门不会用于下一次的出门:
由于不会重复使用入门,所以可以直接排除掉入门,发现两次状态相同,后面一次的传送是不必要的。
同时如果上一次的出门作为下一次的入门,那么可以直接假设原先就没有上一次的出门,重新发射一扇入门即可。
至此,我们证明了每两次传送间不会有影响(即上一次的传送门不会干扰下一次的传送)。这部分实际上是比较显然的,但是还是使用了较为严谨的方式证明。(如果有更简单的方法欢迎告诉笔者)
那么对于每次传送,我们钦定入门的发射一定在进入入门前的一个格子,那么对于发射出门的点
接下来我们对于每次传送证明两次发射在同一个位置发射一定是最优的。(也就是各个题解中说的
考虑