文艺复兴
Background
最近巴黎圣母院遭遇大火,堪称全世界文化的劫难,好在纵火的凶手已经找到,社会各界强烈建议将其击毙。
先不谈惩办凶手的事,更迫在眉睫的是圣母院的重建工作,代号“文艺复兴”,其中一项工作是修复穹顶上的吊灯。
这项任务现在就交给正在工地干活的你。
Description
现在我们有\(n\)个灯,第\(i\)个灯的质量为\(m_i\),大小忽略不计,我们还有若干可选长度的坚硬的轻质杆。
吊灯定义如下:
1. 首先定义“挂”:将灯挂在杆上,指的是把灯挂在杆的其中一端。将\(a\)杆挂在\(b\)杆上,指的是在\(a\)杆上任选一点,在这一点上焊接一条长度忽略不计的短链,再将短链的另一端挂在\(b\)杆的一个端点上。将\(A\)吊灯挂在\(b\)杆上,指的是把\(A\)吊灯中最长的杆挂在\(b\)杆上。请注意,杆可以围绕挂点自由转动,最后整个吊灯要挂在天花板上。
2. 1个灯是吊灯。
3. 如果两个吊灯各自最长的杆长度分别为\(a,b\),那么我们可以把这两个吊灯分别挂在一根长度不小于\(a+b\)的杆的两端,这个整体也是吊灯。
4. 吊灯一定要平衡,即最后仅在重力作用下所有的杆都要保持水平。一个杠杆平衡的条件为:动力与动力臂的乘积等于阻力与阻力臂的乘积,参看下图。
一个灯到天花板的距离定义为:从一个灯沿着杆走,可以在挂点切换到另一根杆,走到天花板的最短距离。定义一个吊灯的势能为所有灯质量和到天花板的距离的乘积的和。
以下的图形象地说明了吊灯的大致形态,圆圈表示灯,三角形表示挂点,直线表示杆。杆上的数字表示相邻两个挂点或灯和最近挂点的距离,这种情况下,1~5号点离天花板的距离分别为6,6,8.5,9.5,10。请注意,该吊灯不是平衡的。
现在已知\(n>=2\),1号灯与最近挂点的距离为\(D\),其中挂点指的是所有的短链焊接点。请适当设计吊灯,使得它的势能最小,求出此时每个灯到最近挂点的距离之和,如果有多个达到最小势能的方案,请输出这些方案中每个灯到最近挂点的距离之和最小的那个方案的距离和。
Format
Input
输入包含不超过10组数据,请处理至文件结束。
每组数据第一行两个整数\(n,D(2<=n<=10^5,1<=D<=10^5)\),意义同题干。
接下来\(n\)行,每行一个整数,第\(i\)行的整数表示\(m_i(1<=m_i<=10^5)\)。
Output
按照输入顺序,对于每组数据,输出一行一个浮点数,保留三位小数,表示本组数据的答案。
Sample 1
Input
2 1
1
2
Output
1.500
Limitation
1s, 1GB for each test case.
Source
2019网宿杯XMU程序设计竞赛现场赛
信息
- ID
- 1016
- 难度
- 9
- 分类
- (无)
- 标签
- (无)
- 递交数
- 7
- 已通过
- 3
- 通过率
- 43%
- 上传者
相关
在下列比赛中: