暑期加训倒计时-区间多解重叠问题

文章讲述了在解决一个编程问题时,关于给定区间内特定函数最大值的计算策略,涉及到区间单调性、除法优化以及队友提供的高效解决方案。作者在过程中遇到的思维偏差和最后的优化技巧对读者有启示作用。
摘要由CSDN通过智能技术生成

#我自己瞎取的名字 意思是题目中出现的区间中会出现多个符合条件的解取最大或最小值#

晚上训练的时候在div3的B卡了很久 一头雾水不知道哪里错了

原题链接:Problem - B - Codeforces

题意:给定区间范围(包含左右端点)和一个固定的数a,求 x / a + x % a 的最大值。

思路:区间如果只有一个数就只有一个结果,若不止一个数则只可能是右端点的函数值或者右端点除a-1再加上a - 1(模的最大值)的值。

证明:对某一a固定值整体函数值趋势大概会是个如P2所示的图像,严格证明的话可以通过区间单调性(推测),所以不同的区间可能会存在阴影部分的重叠面积,这个时候需要取其中较大值。并且区间有可能同时包含△处的值与阴影部分,这也是我偏差的地方()



偏差:对右端点整除a的情况过于自信,认为模为a - 1时一定最大,导致一直WA。



最简AC代码:
 

 

实验过程:

以下是一些小小的插曲(?

在前期过程中我的队友给我提供了如下思路:

 

于是我写出了以下判断:

 

然后就 WA 了()

后来经过又几次的尝试和讨论后我们发现他是这样写的:

 

他的表达除法之后一样的结果 而不是单纯的区间长度()

好的然后这个故事在三个小时后终于结束了 也许还有一点点遗留问题 :比如说为什么这样写:

 

只需要15ms 而上面的写法需要40+ms?这个问题姑且留给明天的自己吧()

晚安朋友们。

睡醒之后可能把一些算法专题来做一些记录了() 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值