概述
试题编号: 202009-4
试题名称: 星际旅行
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
问题描述
在一个n维欧几里得空间的宇宙中,小 A 打算完成一次星际旅行。
利用n维直角坐标系,宇宙中每个点的位置都可以用n维坐标来表示。其中,在宇宙中心的O点(未必是坐标系原点)处,有一个半径为r的超球体黑洞,任何物体若落入黑洞内部(不包括其表面)则无法逃脱。
小 A 选定了m个不在黑洞内部的点P1,P2,…,Pm,作为他星际旅行的目标。不会有两个点处于同一位置。
为了提前做好旅行规划,小 A 希望求出这m个点两两之间的最短曲线距离。同样地,这些曲线不能经过黑洞的内部。为了方便,你只需要输出每个点到其他m-1个点的距离之和。
输入格式
第一行两个整数n,m。
第二行一个整数r。
第三行n个整数,依次表示超球体黑洞的中心O的每一维坐标。
接下来m行,每行n个整数。第i行的各个整数依次表示点Pi的每一维坐标。
同一行内的多个整数之间用一个空格隔开。
输出格式
输出一共m行,每行一个实数。第i行表示第i个点(Pi)到其他所有点的最短曲线距离之和。
请以“整数部分、小数点、小数部分”的格式输出实数,并保留不少于 12 位小数结果。采用其他格式(如科学记数法)输出可能无法得分。
样例输入1
2 3
2
3 1
5 1
1 3
3 -2
样例输出1
8.83711594354348
10.83711594354348
9.39104657990738
样例1说明
如下图所示,圆O为二维平面上的黑洞,P1,P2,P3为小 A 星际旅行的目标。
通过在圆周上选择合适的点A,B,C,D,可以证明,
曲线P1AP2,P2BCP3,P3DP1分别为这三对点之间满足条件的最短曲线。
这些曲线的长度分别为 5.14159265358979, 5.69552328995369, 3.69552328995369。
样例输入2
3 8
1
0 0 0
0 0 1
0 1 0
1 0 0
1 1 1
-1 -1 0
-1 0 -1
0 -1 -1
-1 -1 -1
样例输出2
14.12797001266400
14.12797001266400
14.12797001266400
17.90086240651788
13.95502966750398
13.95502966750398
13.95502966750398
14.99490548122857
评分方法
对于每个测试点,你的结果正确则得该测试点的满分,错误不得分。你的输出被认为是正确的,当且仅当你输出的每个实数与对应答案的相对或绝对误差不超过10-9。
为了达到这一精度要求,请不要使用单精度浮点数(对应 C、C++、Java 语言的 float 类型,机器精度约10-6级别)完成本题,而应当使用双精度浮点数(对应 C、C++、Java 语言的 double 类型、Python 语言的 float 类型,机器精度约10-15级别)或更精确的表示法(如整数类型 int,前提是不能超出该类型的表示范围)。
评测用例规模与约定
本题共 20 个测试点,每个 5 分。
对于所有的测试点,2≤n≤100,2≤m≤2000,1≤r≤1000.
输入中的所有坐标均在[-1000,1000]范围内。
提示
以下数学知识对你求解此题有可能会有帮助(其中所有的角均采用弧度制):
·某个点在超球体的内部(不含边界),当且仅当该点到球心的距离小于超球体的半径;
·超球体的任意一条切线(与超球体有且仅有一个公共点的直线)垂直于过切点的半径;
·给定实数A1,A2,…,An,B(其中A1,A2,…,An不全为 0),方程A1x1+A2x2+…+Anxn+B=0确定了n维空间中的一个n-1维超平面,向量(A1,A2,…,An)是该超平面的一个法向量,点(p1,p2,…,Pn)到该超平面的距离为:
∣
A
1
p
1
+
A
2
p
2
+
.
.
.
+
A
n
p
n
+
B
∣
A
1
2
+
A
2
2
+
.
.
.
+
A
n
2
frac{|A_1p_1+A_2p_2+...+A_np_n+B|}{sqrt{A_1^2+A_2^2+...+A_n^2}}
A12+A22+...+An2∣A1p1+A2p2+...+Anpn+B∣
·对于半径为r的圆,圆心角α对应的弧长为αr;
·对于三边长分别为a,b,c的三角形 ABC(边a是点A的对边,其余同):
○正弦定理:
a
s
i
n
A
=
b
s
i
n
B
=
c
s
i
n
C
=
D
frac{a}{sinA}=frac{b}{sinB}=frac{c}{sinC}=D
sinAa=sinBb=sinCc=D,其中D为三角形外接圆直径;
○余弦定理:
c
2
=
a
2
+
b
2
−
2
a
b
c
o
s
C
c^2=a^2+b^2-2abcosC
c2=a2+b2−2abcosC;
○正弦求三角形面积:
S
=
1
2
a
b
s
i
n
C
S=frac12absinC
S=21absinC;
○海伦-秦九韶公式:
S
=
p
(
p
−
a
)
(
p
−
b
)
(
p
−
c
)
S=sqrt{p(p-a)(p-b)(p-c)}
S=p(p−a)(p−b)(p−c),其中p=(a+b+c)/2;
·同上述,如果
C
=
π
2
C=fracπ2
C=2π,该三角形为直角三角形:
○勾股定理:
a
2
+
b
2
=
c
2
a^2+b^2=c^2
a2+b2=c2;
○三角函数定义:正弦
s
i
n
A
=
a
c
sinA=frac{a}{c}
sinA=ca,余弦
c
o
s
A
=
b
c
cosA=frac{b}{c}
cosA=cb,正切
t
a
n
A
=
a
b
tanA=frac{a}{b}
tanA=ba;
·三角函数的和/差角公式:
○ 两角和/差的正弦:
s
i
n
(
α
±
β
)
=
s
i
n
α
c
o
s
β
±
c
o
s
α
s
i
n
β
sin(α±β)=sinαcosβ±cosαsinβ
sin(α±β)=sinαcosβ±cosαsinβ;
○两角和/差的余弦:
c
o
s
(
α
±
β
)
=
c
o
s
α
c
o
s
β
±
s
i
n
α
s
i
n
β
cos(α±β)=cosαcosβ±sinαsinβ
cos(α±β)=cosαcosβ±sinαsinβ;
○两角和/差的正切:
t
a
n
(
α
±
β
)
=
t
a
n
α
±
t
a
n
β
1
±
t
a
n
α
t
a
n
β
tan(α±β)=frac{tanα±tanβ}{1±tanαtanβ}
tan(α±β)=1±tanαtanβtanα±tanβ。
问题链接:CCF202009-4 星际旅行
问题简述:(略)
问题分析:(略)
程序说明:(略)
参考链接:
第二十次csp认证 第四题 星际旅行题解
CCFCSP认证202009-4星际旅行满分题解(C++)
CCF CSP认证 202009-4 星际旅行
202009-4 星际旅行
202009-4 星际旅行
题记:(略)
100分的C++语言程序如下:
最后
以上就是无私鞋子为你收集整理的CCF202009-4 星际旅行(100分题解链接)的全部内容,希望文章能够帮你解决CCF202009-4 星际旅行(100分题解链接)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复