HDU 4355 - 3 분
제목 n 개인 위치 와 가중치 w
축 위의 실수 점 을 선택 하여 모든 사람 이 이 점 에 도착 하 는 거리 dis 의 3 차원 * w, 의 합 을 구하 십시오.
이거 랑 제일 작 게.
단 봉 함수 로 3 분 해결
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <iostream>
//#include <time.h>
using namespace std;
const double pi=acos(-1.0);
double eps=0.000001;
struct node
{
double x,w;
node() {}
node( double a,double b)
{
x=a,w=b;
}
};
node aa[50005];
int n;
double F(double pos)
{
double ans=0;
for (int i=1; i<=n; i++)
{
double sb=fabs(aa[i].x-pos);
ans+=sb*sb*sb*aa[i].w;
}
return ans;
}
//double aaa[10005];
int main()
{
int t;
cin>>t;
// srand( (unsigned)time( NULL ) );
int cnt=1;
while(t--)
{
cin>>n;
double x,w;
int i;
/* for (i=1;i<=n;i++)
aaa[i]=rand()%1000*1.5;*/
//sort(aaa+1,aaa+1+n);
for (i=1; i<=n; i++)
{
scanf("%lf %lf",&aa[i].x,&aa[i].w);
// aa[i].x=aaa[i]*pow(-1.0,1.0*i);
// aa[i].w=rand()%15*1.0;
}
double l=-1e6;
double r=1e6;
for (i=0;i<100;i++)
{
double m1=l+(r-l)/3;
double m2=r-(r-l)/3;
if (F(m2)>F(m1))
r=m2;
else
l=m1;
}
printf("Case #%d: %.0lf
",cnt++,F(l));
/*
double minn=F(1);
for (i=1;i<=n;i++)
{
minn= min(minn,F(i));
}
long long oo=(long long) (minn);
printf("ans2::%lld
",oo);*/
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.