乐乐的计算题目+题解

100242. 乐乐的计算 (Standard IO)时间限制: 1000 ms 空间限制: 262144 KB题目描述乐乐的学校为了宣传创文,特地组织了一次长跑活动。长跑总共要经过n个地点分别标记为p1…pn,长跑的路线绘制在一张图纸上,图纸上除了标识n个地点的位置和路线外,还标识了每个地点的海拔高度hi(0<hi<=100),以及相邻地点的距离si(0<si<=...
摘要由CSDN通过智能技术生成

100242. 乐乐的计算 (Standard IO)

时间限制: 1000 ms 空间限制: 262144 KB

题目描述
乐乐的学校为了宣传创文,特地组织了一次长跑活动。长跑总共要经过n个地点分别标记为p1…pn,长跑的路线绘制在一张图纸上,图纸上除了标识n个地点的位置和路线外,还标识了每个地点的海拔高度hi(0<hi<=100),以及相邻地点的距离si(0<si<=100),假设每段路程都是近似于直线的线段。好奇的乐乐想知道在这长跑路线图里面,海拔最高点与最低点的直线距离是多少?

输入
第一行:一个整数n(2≤n≤100)。
第二行:n个空格分开的整数hi,第i个整数代表第i个地点的高度。
第三行:n-1个空格分开的整数si,第i个整数代表第i段距离。

输出
一个实数海拔最低点与海拔最高点的距离(结果保留两位小数)。

样例输入
8
2 4 1 5 3 11 4 6
3 4 5 3 10 6 3

样例输出
15.04

数据范围限制

提示
如上图是跑步路线的情况(并非样例数据)

解题思路以及作者的分析

这一道题目的难度是普及组的第1或第2道题的难度。

嗯嗯还算是水体一发。
话不多说来讲一下解题思路。
我们假设每一条线都是很值的情况下。
我们把最高点与最低点的直线叫做P。
要求这条直线的长度。直接求不是很好求。所以呢,我们需要用别的求法。相信大家都知道勾股定理吧。a²+b²=c²。我们可以利用这条关系来解决这道奇妙的问题。首先,我们知道了很多上坡路和下坡路和平路的距离这个距离我们把它看作三角形的斜边。我们来构造这样一个三角形。注意:这个三角形是一个直角三角形。再沿着斜边靠上一点的那一个点往下做一条高直到这条高的下面的那个点的高度等于较矮点的高度时停止。在下哦那个较矮点到高的较矮点链接一条线段。这样就组成了一个直角三角形。因为我们知道斜和一条直角边的长度,我们叫可以用勾股定理来求另一条直角边的长度(即底边)。在从最小高度到最大高度的两点之间,所有三角形底边的和就是一条直角边,两点的高度只差就是另一条直角边。在用一次勾股定理求出斜边即可。
思路就说那么多了吧!
以下是标程:

var
        h,s:array[1..100] of real;
        i,n,x,y,j:longint;
        t,ans,sh,g:real;
        juli:real;
begin
        readln(n);
        t:=-10000;
        sh:=10000;
        for i:=1 to n do
        begin
                read(h[i]);
                if h[i]>t then
                begin
                        t:=h[i];
                        x:=i;
                end;
                if h[i]<sh then
                begin
                        sh:=h[i];
                        y:=i;
                end;
        end;
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值