三分搜索

原创 2015年07月10日 10:14:41

二分所查找的序列是单调的,把区间分为相等的两段,三分所查找的序列是凸型或凹形函数,为了查找函数的最值。

hdu 4355

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include <algorithm>
using namespace std;

const double eps=1e-5;
const int MAX=50010;

double p[MAX],w[MAX];
int n;

double equ(double x)
{
    double ans=0;
    for(int i=0;i<n;i++)
    {
        double S=fabs(p[i]-x);
        ans+=w[i]*S*S*S;
    }
    return ans;
}

double ternarySearch(double l,double r)
{
    while(r-l>eps)
    {
        double ll=(2*l+r)/3;
        double rr=(l+2*r)/3;
        double ans1=equ(ll);
        double ans2=equ(rr);
        if(ans1>ans2)
            l=ll;
        else
            r=rr;
    }
    return l;
}

int main()
{
    int T,i;
    scanf("%d",&T);
    for(int t=1;t<=T;t++)
    {
        scanf("%d",&n);
        for(i=0;i<n;i++)
        scanf("%lf%lf",&p[i],&w[i]);
        double l=p[0],r=p[n-1];
        double tmp=ternarySearch(l,r);
        printf("Case #%d: %.0lf\n",t,equ(tmp));
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Ternary Search Trees 三分搜索树

这几天在研究suggest tree, suggest tree是以Ternary Search Tree为基础,所以先转一个3分搜索树博客。 转自: http://chenzongzhi.info...

Ternary Search Trees 三分搜索树-源码

#include #include #include #include using namespace std; class TernarySearchTree { private: ...

POJ 3737 UmBasketella 三分搜索

UmBasketella Time Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %lld & %llu SubmitStatus...

poj 3301 Texas Trip 三分搜索

Texas Trip Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4459   Acc...

三分搜索算法&hdu 2899 Strange fuction

三分搜索算法: 整个算法在最坏情况下的计算时间复杂性为O(log3(n)),每执行一次算法的循环,待搜索数组的大小减少三分之二。对具体n值的数组进行搜索时,虽然三分搜索法在数据搜索时,循环次数减少了,...

HDU 4717 The Moving Points (三分搜索)

The Moving Points Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other...
  • lwt36
  • lwt36
  • 2015-05-13 11:54
  • 349

三分搜索法

转自:http://www.cnblogs.com/newpanderking/archive/2011/08/25/2153777.html 二分法作为分治中最常见的方法,适用于单调函数,...

三分算法(解决先增后减或先减后增的搜索方法)

B. The Meeting Place Cannot Be Changed time limit per test 5 seconds memory limit per test 256 m...

三分搜索

学完二分查找之后在=再学
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)