社区讨论
区间重叠问题不需要处理
P10429[蓝桥杯 2024 省 B] 拔河参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @m21jk15k
- 此快照首次捕获于
- 2024/10/09 15:21 去年
- 此快照最后确认于
- 2025/11/04 17:35 4 个月前
证明:SET容器里一旦出现相同的值就必定最小值是
假设这两个区间分别是区间A和区间B,一共有三种情况。
情况一:区间A包含了区间B,例如 ,由于元素非负,这种情况是不可能的。
情况二:区间A与区间B没有重叠部分,例如 ,这种情况显然直接符合答案要求。
情况三:区间A与区间B有部分是重叠的。
我们假设区间 是 , 是 ,其中,那说明 部分是重叠的。
我们设 的区间和是 ,B的区间和是 ,重叠部分的和是
那由于 ,则说明 ,那就说明去掉重叠部分,他们的和也是一样的,就说明就算把重叠部分去掉的两个子区间也是相同的,则最小值必定是
例如 ,即便 有重叠部分,那去掉一样的值,他们的和还是一样的。
即 也是符合答案的。
说明一旦出现相同的值,就必定最小值是
证明:重叠区间不会影响答案决策。
假设两次选取的区间分别是区间A和区间B
如果区间A和区间B是其本身,即 ,寻找第一个大于 的整数等价于寻找第一个大于等于 的正整数,或者通过 函数消去本值,由于前面证明每个数值只会存在一次,所以无需担心删除或者不考虑带来的后效性,为效率可以考虑前者。
如果区间A和区间B属于子区间关系,例如 ,此时 区间包含了 ,他们的差值就是 所剩下区间的和,那既然他剩下的是 ,那说明我可以选择 这个区间,再选择另一个区间,这样结果肯定比 要小。至少可以选择所以子区间不会影响答案。
例如 ,他们的差值是 ,那我直接选择 进行比较,得到的结果必然比没减去 还要少。
如果区间A和区间B有部分重叠关系,即上面的第三个情况,同样的道理,那他们的差值就是 区间和 区间各自不交界的地方,那既然这样,直接选择这两个区间进行相减得到绝对值,必定比AB区间加起来还要小,所以也不会影响答案。
例如有数组 ,那得到的结果必然是 之和,那我直接选择 两个分区间进行相减,必然比 相加的结果要小。
回复
共 3 条回复,欢迎继续交流。
正在加载回复...