昨天继续看了二分,又看了排序,倍增的知识刚开始了解,以前的认知里,二分就是一个套路,排序用sort就可以了,倍增更是没用过。
二分又分为整数二分,实数二分,三分求极值,二分答案化为判定等等。二分首先要注意是单调序列,注意答案所在区间确定取值,实数二分要注意精度问题,一般比所要求的高两个精度或者加一个循环,循环一百次即可。三分需要注意的就是如果在一个函数中出现函数值相等的区间那么不能用三分法。
二分一般用来求“最小值的最大值”或者“最大值的最小值”问题,而二分答案化为判定就是把求最优解问题转化为给定一个值mid,判断是否存在一个可行方案使得结果达到mid值。
问题:给定一个整数序列,求一个平均值最大,长度不小于L的子段。
思路:平均值+双指针+二分
1.最优化转化为判定:将平均值最大转化为判定一个mid存在性
2.平均值大于等于mid转化为减去mid后前缀和的非负性
3.两个指针判断子段长度
排序:可以利用快速排序思想求第K大数;利用归并排序求逆序对
遇到数据量不大的序列,但数据较大时可以用离散化
中位数:之前没发现过它的用处,可以求某点到同一坐标轴上多个点的最小距离的点的坐标,例如:货舱选址
问题:七夕祭
思路:环形均分纸牌+中位数
1.将一个问题拆分成行列两个独立的问题
2.最小步数转化为减去平均值求前缀和问题
3.讨论在那拆开,一个环形均分纸牌问题
4.最小,可以暴力枚举,也可以利用中位数
倍增:利用二进制思想
又一天过去,昨天比赛打的真难受,感觉最后都死在了读题理解题意上,尤其是最后一个题,真的是什么区间最少,又不要求区间最小,真的是难为死我这个高中语文水平还有初中英语水平的人了。
讨论的时候主要讨论了几个看的不懂的例题,主要有上面的七夕祭,还提到之前打的逆序对,主要讨论了做题的大体思路,我感觉这样还是挺不错的。
今天的我继续加油呀!!!
暑假训练3
最新推荐文章于 2024-08-04 12:52:09 发布