三分算法

    xiaoxiao2025-05-20  11

    前言

    在自从gdoi2016被第一题的三分虐了后,再次接触三分,其实不难。 三分算法解决凸形或者凹形函数的极值。

    流程

    lmid=l+rl3,rmid=rrl3 lmidrmidllmid rmidlmidrrmid ; 直到 l>=r

    原理

    lmidrmidlmidllmid 。 同样 rmidlmidrmidrrmid 。 通过这样来一次次缩小(l,r)的范围。

    code

    double l=0,r=n; while(l+0.001<=r) { double mid1=l+(r-l)/3,mid2=r-(r-l)/3; if(a[mid1]<a[mid2]) l=lmid; else r=rmid; }

    推荐一道好题, 【NOIP2016提高A组模拟8.14】传送带

    转载请注明原文地址: https://ju.6miu.com/read-1299070.html
    最新回复(0)