蓝桥杯 荒岛探测,求解

问题描述
科学家小蓝来到了一个荒岛,准备对这个荒岛进行探测考察。小蓝使用了一个超声定位设备来对自己进行定位。为了使用这个设备,小蓝需要在不同的点分别安装一个固定的发射器和一个固定的接收器。小蓝手中还有一个移动设备。定位设备需要从发射器发射一个信号到移动设备,移动设备收到后马上转发,最后由接收器接收,根据这些设备之间传递的时间差就能计算出移动设备距离发射器和接收器的两个距离,从而实现定位。小蓝在两个位置已经安装了发射器和接收器,其中发射器安装在坐标(xa,ya) ,接收器安装在坐标 (xb,yb)。小蓝的发射器和接收器可能在岛上,也可能不在岛上。小蓝的定位设备设计有些缺陷,当发射器到移动设备的距离加上移动设备到接收器的距离之和大于 L时,定位设备工作不正常。当和小于等于 L时,定位设备工作正常。为了安全,小蓝只在定位设备工作正常的区域探测考察。已知荒岛是一个三角形,三个顶点的坐标分别为(x1,y1) ,(x2,y2) , (x3,y3)。请计算,小蓝在荒岛上可以探测到的面积有多大?

输入格式
输入的第一行包含五个整数,分别为xa ,ya , xb, yb, L。第二行包含六个整数,分别为x1 ,y1 , x2,y2 , x3, y3。输出格式输出一行,包含一个实数,四舍五入保留2 位小数,表示答案。考虑到计算中的误差,只要你的输出与参考输出相差不超过 0.01 即可得分。

我的代码如下:
#include
using namespace std;
#include
int main(){
float xa,ya,xb,yb,L;//发射器接收器的位置;
float x1,y1,x2,y2,x3,y3;//荒岛的三点;
cin>>xa>>ya>>xb>>yb>>L;
cin>>x1>>y1>>x2>>y2>>x3>>y3;
double pi=4atan(1.0);
float m,n,A,B;
m=sqrt(pow((xa-xb),2)+pow((ya-yb),2));//发射器到接收器的距离;
n=L-m;
A=L/2.0;//实轴长;
B=sqrt(pow(L/2,2)-pow(m/2,2));//虚轴长;
double s;
s=A
B*pi/2.0;
printf("%.2f\n",s);
return 0;
}
运行结果:
样例输入
但是在练习系统上提交答案显示出错,
有没有大佬告诉我是什么原因?😭😭😭
我自己看不出来😭😭
评测结果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
华为荒岛求生算法是一种解决荒岛求生问题的算法,通常使用Java语言进行实现。 荒岛求生问题是指一个人被困在一个荒岛上,需要寻找出路并且尽可能延长自己的生存时间。华为荒岛求生算法主要包括以下几个步骤: 1. 初始化地图:根据荒岛的地理信息,构建一个地图并初始化。地图通常使用二维数组来表示,其中每个位置代表岛屿的地形和是否可行走。 2. 定位初始位置:在地图中确定人物的初始位置,并为其设置生命值、饥饿值等属性。 3. 搜索出路:通过深度优先搜索或广度优先搜索等算法,在地图上寻找可行的路径,即表示荒岛上的出路。 4. 判断生存条件:在搜索出路的过程中,要根据人物的生命值、饥饿值以及地形等因素判断生存条件。比如,若人物生命值过低或饥饿值过高,则无法继续前行。 5. 优化算法:为了提高算法的效率和准确性,可以使用剪枝等技术对搜索过程进行优化。 6. 输出结果:当找到出路后,将路径输出,并计算人物在荒岛上存活的时间。 华为荒岛求生算法在解决荒岛求生问题上有着较好的性能和准确性。由于Java语言具有良好的跨平台性和易学易用的特点,因此选择Java来实现该算法是较为常见的选择。通过使用Java语言,可以方便地处理数组、递归等操作,并且可以更好地组织和管理代码,提高开发效率。 总之,华为荒岛求生算法是一种解决荒岛求生问题的算法,并且通常使用Java语言进行实现。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值