Let‘s Play Curling 二分,lower_bound(2020.12.南京)
生活随笔
收集整理的這篇文章主要介紹了
Let‘s Play Curling 二分,lower_bound(2020.12.南京)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題意 :
- 紅石頭屬于紅隊,藍石頭屬于藍隊,分別給出所有紅色藍色石頭在數(shù)軸上的位置,構造目標點的位置(實數(shù)),使得紅隊勝利且獲得的分數(shù)盡可能多,紅隊的分數(shù) 等于 所有 比所有藍石頭離目標點近 的紅石頭 的數(shù)量,求 紅隊的最大分數(shù)或者如果無法贏就輸出impossivle
思路 :
- 確定一個c點,紅隊中距離c的位置比藍隊中所有石頭都近的 石頭的個數(shù),就是紅隊的分數(shù),發(fā)現(xiàn)尋找c點不好找,于是轉(zhuǎn)換思路,發(fā)現(xiàn)兩個藍色石頭之間紅色石頭的數(shù)量的最大值即為答案,因為在兩個藍色石頭之間的紅色石頭一定比所有藍色石頭更近c,且藍色石頭外的紅色石頭不滿足比所有藍色石頭更近,因此,證為最優(yōu)解
- 先將兩個序列排序,然后用lower_bound或者upper_bound尋找在兩個藍色石頭間紅色石頭的個數(shù)
- 特別地,在第一個藍色石頭之前的和最后一個藍色石頭之后的也滿足條件,因此,在最前面和最后面再增加藍色石頭
- lower_bound復雜度O(logN)O(logN)O(logN),返回值是下標
總結
以上是生活随笔為你收集整理的Let‘s Play Curling 二分,lower_bound(2020.12.南京)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Fireworks 期望,几何分布,概率
- 下一篇: 王道计算机考研 数据结构 (树与二叉树)