关于重叠区间不会影响答案的正确性
查看原帖
关于重叠区间不会影响答案的正确性
965484
Waldin楼主2024/10/21 09:02

这最开始由大佬 Turgen这篇帖子中提出。但个人认为该帖子中证明的核心思想并不是很突出,细节部分也有疑似笔误的地方,故再次进行总结。

证明:

设某次枚举中两个区间分别为集合 AABB。需要指出的是,在接下来的证明中,我们将不区分 AABB 的前后顺序,因为如果顺序不合适,交换其表示的区间即可。

首先,枚举算法已经保证 ABA\ne BA,BA,B\ne\varnothing,那么这时候再出现重叠,就有且只有两种情况了:

ABA\subsetneqq B

AB{A,B,}A\cap B\notin\left\{A,B,\varnothing\right\}

也就是一个区间完全包含了另一个区间,或者两区间有一部分是重叠的。

对于第一种情况,为方便起见,我们用小写字母表示正整数,就可以设 A={b,c}A=\left\{b,c\right\}B={a,b,c,d}B=\left\{a,b,c,d\right\}

需要知道有引理:

设两正整数 xxyy,则有 x+y>xyx+y>\left|x-y\right|

此时,差距为 a+da+d,而如果取 A={a}A=\left\{a\right\}B={d}B=\left\{d\right\},则差距为ad\left|a-d\right|。根据引理,后者更优,所以不合法的前者永远不会成为最终答案。

对于第二种情况,设 A={a,b,c}A=\left\{a,b,c\right\}B={b,c,d}B=\left\{b,c,d\right\}。此时,差距为ad\left|a-d\right|,而如果取 A={a}A=\left\{a\right\}B={d}B=\left\{d\right\},同样可以出现ad\left|a-d\right|的差距。也就是说,虽然差距的来源,也就是选择的区间,是不合法的,但是这个差距是一定可以通过选择其他合法区间合法出现的,所以就算用这个差距来更新答案了,答案的正确性也是不受影响的。

2024/10/21 09:02
加载中...