[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 (三分)