• poj 2069


    唔。

    这道题的火候比较巧妙。

    我们是每次找到一个最远的点,然后向那个最远点逼近。

    这显然非常合理。

     1 #include <cstdlib>
     2 #include <cmath>
     3 #include <cstdio>
     4 #include <algorithm>
     5 
     6 using namespace std;
     7 typedef double db;
     8 const db eps = 1e-7;
     9 const db delta = 0.98;
    10 const db INF = 1e100;
    11 db random(){
    12     return (rand()&1?1:-1)*rand()*1.0/32767;
    13 }
    14 struct P3{
    15     db x,y,z;
    16     P3 operator + (P3 k1){return (P3){x+k1.x,y+k1.y,z+k1.z};}
    17     P3 operator - (P3 k1){return (P3){x-k1.x,y-k1.y,z-k1.z};}
    18     P3 operator / (db k1){ return (P3){x/k1,y/k1,z/k1};}
    19     P3 operator * (db k1){ return (P3){x*k1,y*k1,z*k1};}
    20     db abs(){return sqrt(x*x+y*y+z*z);}
    21 };
    22 P3 p[33];
    23 int n;
    24 db F(P3 x){
    25     db res=0;
    26     for(int i=0;i<n;i++){
    27         res=max(res,(x-p[i]).abs());
    28     }
    29     return res;
    30 }
    31 db SA(){
    32     db t = 100;
    33     db ans = INF;
    34     P3 x = {0,0,0};
    35     while (t>eps){
    36         db mx = 0;int id=-1;
    37         for(int i=0;i<n;i++){
    38             if((x-p[i]).abs()>mx){
    39                 mx=(x-p[i]).abs();
    40                 id=i;
    41             }
    42         }
    43         ans = min(ans,mx);
    44         ans=mx;
    45         x=x+(p[id]-x)/mx*t;
    46         t*=delta;
    47     }
    48     printf("%.5f
    ",ans);
    49 }
    50 int main(){
    51     while (scanf("%d",&n)&&n){
    52         for(int i=0;i<n;i++){
    53             scanf("%lf%lf%lf",&p[i].x,&p[i].y,&p[i].z);
    54         }
    55         SA();
    56     }
    57 }
    View Code
  • 相关阅读:
    HDU2602:Bone Collector
    HDU5773:The All-purpose Zero
    LightOJ 1275:Internet Service Providers
    8.SpringMVC拦截器
    7.SpringMVC和Ajax技术
    Tomcat什么时候需要restart,redeploy,update classes and resources
    6.SpringMVC的JSON讲解
    5.SpringMVC数据处理
    4.SpringMVC的结果跳转方式
    3.SpringMVC的Controller 及 RestFul风格
  • 原文地址:https://www.cnblogs.com/MXang/p/10550428.html
Copyright © 2020-2023  润新知