P9024 题解

· · 题解

题目大意

一个由 N 块木板组成的栅栏,并且相邻的两块木板的左边界和右边界是相同的,给出每块木板边界的长度和每块木板的宽度。求栅栏的总面积。

题目解法

我们观察样例解释可以发现,每一块木板都是一个梯形,木板的左边界就是梯形的上底,右边界就是下底。而且我们发现木板一定与地面垂直,所以木板都是直角梯形,这样我们就可以发现梯形是高就是木板的宽度。因此我们根据梯形面积公式求出每个木板的面积了,而栅栏的面积就是所有木板面积的和。

最后要注意输出的时候要记得保留 1 位小数。

注:梯形的面积 S=(a+b) \times h \div 2a 是上底,b 是下底,h 是高)

参考代码

#include<iostream>
using namespace std;
int a[10010],b[10010],n;
double sum;
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n+1;i++) scanf("%d",&a[i]);
    for(int i=1;i<=n;i++) scanf("%d",&b[i]); 
    for(int i=1;i<=n;i++) sum+=(double)(a[i]+a[i+1])*b[i]/2;
    printf("%.1lf",sum);
}