[hdu4355]Party All the Time(三分)

Posted elpsycongroo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[hdu4355]Party All the Time(三分)相关的知识,希望对你有一定的参考价值。

解题关键:三分法裸题,一开始一定要保证函数为凸函数活着凹函数。

#include<bits/stdc++.h>
#define eps 1e-6
using namespace std;
int n;
double x[50010],w[50010];
double fuc(double a){//用pow会超时 
    double d,ans=0;
    for(int i=1;i<=n;i++){
        d=fabs(x[i]-a);
        ans+=d*d*d*w[i];
    }
    return ans;
}
double sanfen(){
    double m1,m2,l=-1e6+0.0,r=1e6+0.0;
    while(r-l>eps){
        m1=(l+r)/2;
        m2=(m1+r)/2;
        if(fuc(m1)<fuc(m2))r=m2;
        else l=m1;
    }
    return r;
} 

int main(){
    int t,tt=1;
    scanf("%d",&t);
    while(t--){
        scanf("%d",&n);
        for(int i=1;i<=n;i++) scanf("%lf%lf",x+i,w+i);
        double ans=sanfen();
        if(n==1) printf("Case #%d: %.0f
",tt++,0.0);
        else printf("Case #%d: %.0f
",tt++,fuc(ans));
    }
    return 0;
}

 

以上是关于[hdu4355]Party All the Time(三分)的主要内容,如果未能解决你的问题,请参考以下文章

HDU 4355 Party All the Time 三分算法

I - Party All the Time (HDU - 4355)

HDU 4355 Party All the Time(三分|二分)

HDOJ4355-Party All the Time(三分)

codeforces 782B The Meeting Place Cannot Be Changed+hdu 4355+hdu 2438 (三分)

HDU 1520 Anniversity party