18 南京 D

裸的最小球覆盖。

坐标范围大一些所以我们把初始的温度也设置的大一些。

 

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 typedef double db;
 5 const db INF = 1e100;
 6 const db delta = 0.98;
 7 const db eps = 1e-8;
 8 struct p3{
 9     db x,y,z;
10     p3 operator +(const  p3&k1)const { return p3{x+k1.x,y+k1.y,z+k1.z};}
11     p3 operator -(const p3&k1)const { return p3{x-k1.x,y-k1.y,z-k1.z};}
12     p3 operator *(const db k1)const { return p3{x*k1,y*k1,z*k1};}
13     p3 operator /(const db k1)const { return p3{x/k1,y/k1,z/k1};}
14     db abs(){ return sqrt(x*x+y*y+z*z);}
15     db dis(p3 k1){ return (*this-k1).abs();}
16 };
17 int n;
18 p3 p[105];
19 int main(){
20     scanf("%d",&n);
21     for(int i=1;i<=n;i++){
22         scanf("%lf%lf%lf",&p[i].x,&p[i].y,&p[i].z);
23     }
24     db T = 100000;
25     db ans = INF;
26     p3 x = {0,0,0};
27     while (T>eps){
28         db mx =0;int id=-1;
29         for(int i=1;i<=n;i++){
30             if((p[i]-x).abs()>mx){
31                 mx=(p[i]-x).abs();
32                 id=i;
33             }
34         }
35         ans = min(ans,mx);
36         x=x+(p[id]-x)/mx*T;
37         T*=delta;
38     }
39     printf("%.11f\n",ans);
40 }
View Code

 

转载于:https://www.cnblogs.com/MXang/p/10550957.html

第三章:C语言基础语法 C语言作为一种高级程序设计语言,其基础语法相对来说比较简单,但是也有一些需要注意的细节,下面就来介绍一下C语言基础语法。 1.注释 在C语言中,注释是一种用来解释代码的方式,对于代码的可读性和可维护性都有很大的帮助。在C语言中,有两种注释方式: (1)单行注释 单行注释以"//"开头,注释内容为"//"后面的所有内容,例如: ```c //这是一个单行注释 ``` (2)多行注释 多行注释以"/*"开头,以"*/"结尾,注释内容为"/*"和"*/"之间的所有内容,例如: ```c /* 这是一个多行注释 可以写很多内容 */ ``` 2.标识符 在C语言中,标识符是程序员定义的变量、函数名、数组名等等的名称,标识符必须由字母、数字、下划线组成,且第一个字符必须是字母或下划线。标识符的命名应该具有一定的意义,方便程序的阅读和理解,例如: ```c int age; //定义一个名为age的整型变量 float height; //定义一个名为height的浮点型变量 ``` 3.数据类型 在C语言中,数据类型用来定义变量的类型,C语言中的数据类型包括基本数据类型和派生数据类型。 (1)基本数据类型 C语言中的基本数据类型包括整型、浮点型、字符型和布尔型,它们分别对应int、float、char和bool这四个关键字。 例如: ```c int age = 18; //定义一个名为age的整型变量,并赋初值为18 float height = 1.75; //定义一个名为height的浮点型变量,并赋初值为1.75 char sex = 'M'; //定义一个名为sex的字符型变量,并赋初值为'M' bool isStudent = true; //定义一个名为isStudent的布尔型变量,并赋初值为true ``` (2)派生数据类型 C语言中的派生数据类型包括数组、指针、结构体、共用体等等,它们是由基本数据类型衍生出来的,具有不同的特点和用途。 例如: ```c int a[5]; //定义一个名为a的整型数组,长度为5 int *p; //定义一个名为p的指向整型的指针变量 struct student { //定义一个名为student的结构体类型 int id; char name[20]; int age; }; ``` 4.运算符 C语言中的运算符包括算术运算符、关系运算符、逻辑运算符等等,它们用来对变量进行数学运算、比较大小、判断真假等等操作。 例如: ```c int a = 10, b = 3; int c = a + b; //算术运算符,c的值为13 bool d = a > b; //关系运算符,d的值为true bool e = a && b; //逻辑运算符,e的值为true ``` 5.流程控制语句 在C语言中,流程控制语句用来控制程序的执行流程,包括条件语句、循环语句等等。 (1)条件语句 C语言中的条件语句包括if语句、switch语句等等,用来根据条件来执行不同的代码块。 例如: ```c if (a > b) { printf("a > b"); } else { printf("a <= b"); } switch (score) { case 90: printf("优秀"); break; case 80: printf("良好"); break; default: printf("不及格"); break; } ``` (2)循环语句 C语言中的循环语句包括for循环、while循环、do-while循环等等,用来重复执行某段代码块。 例如: ```c for (int i = 0; i < 10; i++) { printf("%d ", i); } int j = 0; while (j < 10) { printf("%d ", j); j++; } int k = 0; do { printf("%d ", k); k++; } while (k < 10); ``` 以上就是C语言基础语法的介绍,希望大家能够掌握好这些基础知识,为后续的学习打好基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值