首页 > 编程语言 >1.3二分算法

1.3二分算法

时间:2024-09-06 08:52:55浏览次数:10  
标签:二分 防具 1.3 平均数 最大值 算法 答案 单调

算法理解

二分用于解决答案具有单调性问题(经典最大值最小问题),是一个好的入手点,用一个log的复杂度,将求解答案转化成了判断答案是否合法

实数域上的二分

两种方法:确定精度eps,固定枚举次数,一般后者精度大于前者

T1:

二分最大值,注:如果有一个数本身就大于二分答案,则答案肯定错误,证明:考虑如果只有一个数大于二分答案,其余都正常,可能就会小于分段数,导致答案错误

T2:(T_T)

单纯枚举位置判断这个位置上防具奇偶是不具有单调性的,考虑只有一个位置为奇或全为偶,如何想到的呢:我们先判断是这两种情况的哪一种,显然,如果全部防具加起来为偶,则全为偶,反之则有一鸡,我们可以将这个结论推广,在二分的位置x时,若0~x中有总防具为鸡,则防具个数为鸡的位置必然在前面,反之则在后面,具有单调性

T3:(T_T)

实数内二分平均数,判定是否存在一个长度不小于L的数列,平均数不小于mid,存在性问题,找极端值,就是找平均数最大的序列,平均数是用段的和除以元素个数,我们想只统计段的和,所以,考虑将每一个数都减去平均数,现在问题就转化成了维护一段长度不小于L的和的最大值,考虑统计前缀和,问题又变成了找到对于一个右端点为i的区间,找到一个0~i-L中的最小前缀和,它们相减就是这段的和,找到最大的和,判断它是否大于等于0,是,则存在这样一个序列,具有单调性

T4:

二分选多少宠物,n<50,乱搞即可

T5:

同上题,找到前m大的数,但复杂度太高了,瓶颈在sort排序,考虑将排序优化到O(n),用一种新奇的STL:

std::nth_element(a+1,a+m,a+n+1,cmp);

用法详见OI viki
注:a+m指的是a[m]

标签:二分,防具,1.3,平均数,最大值,算法,答案,单调
From: https://www.cnblogs.com/zcxnb/p/18399549

相关文章

  • 链表算法题(下)
    在链表算法题(上)长中我们已经学习了一系列的链表算法题,那么在本篇中我们将继续来学习链表的算法题,接下来就继续来破解链表的算法题吧!1.相交链表160.相交链表-力扣(LeetCode)通过以上的题目的描述该算法题要我们实现的代码功能是判断两条链表是否相交,如果相较的话就返......
  • 算法图解(5~6)
    散列表|哈希表(HashTable)通过散列函数将关键字(key)映射到数组中的特定位置,以便来快速查找数据。哈希表就是c++内置散列表散列函数:将输入的关键字转换为整数,散列函数的质量决定了散列表的性能,好的散列函数应能均匀地分布关键字,避免冲突。填充|负载因子:元素总数/位置总......
  • php 实现推荐算法
            在PHP中实现推荐算法的应用场景通常包括电商、社交媒体、内容平台等。推荐算法可以帮助用户找到与其兴趣相关的内容,提高用户体验和平台黏性。以下是几种常见的推荐算法及其PHP实现方式:1.基于协同过滤的推荐算法协同过滤(CollaborativeFiltering)是一种常见的......
  • 旅行商问题 | Matlab基于混合粒子群算法GA-PSO的旅行商问题TSP
    目录效果一览基本介绍建模步骤程序设计参考资料效果一览基本介绍混合粒子群算法GA-PSO是一种结合了遗传算法(GeneticAlgorithm,GA)和粒子群优化算法(ParticleSwarmOptimization,PSO)的优化算法。在解决旅行商问题(TravelingSalesmanProblem,TSP)时,这种混合算法可......
  • codetop算法分类
    以下是按照常见算法标签将题目进行归类的列表:1.动态规划10.正则表达式匹配1143.最长公共子序列115.不同的子序列120.三角形最小路径和121.买卖股票的最佳时机123.买卖股票的最佳时机III131.分割回文串152.乘积最大子数组188.买卖股票的最佳时机IV198.打家......
  • 学习算法需要数学知识吗?
    目录算法与数学:看似不可分割的关系常见算法中的数学元素案例分析:不需要高深数学知识的算法1.二分查找2.深度优先搜索(DFS)3.动态规划:斐波那契数列如何在有限的数学背景下学习算法1.专注于算法的逻辑和过程2.可视化算法流程3.从简单的实现开始,逐步优化4.学......
  • 基于SSA奇异谱分析算法的时间序列趋势线提取matlab仿真
    1.程序功能描述   奇异谱分析(SingularSpectrumAnalysis,简称SSA)是一种强大的非线性和非参数时间序列分析方法。该方法基于奇异值分解(SVD)和轨迹矩阵的概念,用于提取时间序列中的趋势、周期性和噪声成分。在本课题中,通过SSA算法,从强干扰序列中提取其趋势线。2.测试软件版本......
  • 基于鱼群算法的散热片形状优化matlab仿真
    1.课题概述使用浴盆曲线进行空隙外形的模拟,然后通过优化,计算得到最优的浴盆曲线的各个参数,从而计算出最优的R值。浴盆曲线函数如下所示:从上面的仿真结果可知,直接对目标函数进行优化,仿真速度非常慢,这里我们使用浴缸曲线结合鱼群算法进行优化。从而得到最佳的孔隙度值和H对应......
  • 基于鱼群算法的散热片形状优化matlab仿真
    1.课题概述        使用浴盆曲线进行空隙外形的模拟,然后通过优化,计算得到最优的浴盆曲线的各个参数,从而计算出最优的R值。浴盆曲线函数如下所示:          从上面的仿真结果可知,直接对目标函数进行优化,仿真速度非常慢,这里我们使用浴缸曲线结合鱼群算法进......
  • 基于SSA奇异谱分析算法的时间序列趋势线提取matlab仿真
    1.程序功能描述奇异谱分析(SingularSpectrumAnalysis,简称SSA)是一种强大的非线性和非参数时间序列分析方法。该方法基于奇异值分解(SVD)和轨迹矩阵的概念,用于提取时间序列中的趋势、周期性和噪声成分。在本课题中,通过SSA算法,从强干扰序列中提取其趋势线。2.测试软件版本以及......