此题链接单击这里
=================
题意:
一条长度为L的街道,上有N个灯,给出N个灯所在的位置(0<=ai<=L)。问灯的最小半径为多少才能照亮整个街道。
思路:
先把所的灯进行排序,用位置大的数减去位置小的数除以2,取最大值。最后还要和a[0],l-a[n]比较。
做这题时脑子很乱,看了别人的代码后心都碎了。。。。。。
#include <iostream>
#include <cstdio>
#include <queue>
#include <stack>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
int n;
long long l;
long long a[1010];
int main()
{
cin>>n>>l;
for(int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
double m=max(a[0]-0,l-a[n-1]);
for(int i=1;i<n;i++)
m=max(m,(a[i]-a[i-1])/2.0);
printf("%.10lf\n",m);
}
有问题联系企鹅791267032
邮箱地址….wutanrong@Hotmail.com
一道关于计算灯泡最小半径以照亮所有位置的数学问题,需要对灯的位置排序并求解最大差值的一半,同时考虑边界情况。
1801

被折叠的 条评论
为什么被折叠?



