P9024 Crazy Fencing 题解
这是一道简单数学题。
主要应用到梯形面积公式:
这个公式和这道题有什么关系呢?我们来看一下这个图(其实就是题目中的原图):
可以把每个栅栏看作一个直角梯形,则整个栅栏由三个直角梯形组成,因此我们只需要计算这三个梯形的总面积即可。对于每一个梯形,它的上、下底即为该栅栏两个边界的高,它的高
#include <iostream>
using namespace std;
const int maxn=1e4+5;
int n,h[maxn],w[maxn];//h记录栅栏边界高,w记录栅栏的宽。
double ans;
int main(){
scanf("%d",&n);
for(int i=0;i<=n;i++) scanf("%d",&h[i]);
for(int i=0;i<n;i++) scanf("%d",&w[i]);
for(int i=0;i<n;i++) ans+=(double)(h[i]+h[i+1])*w[i]/2;//计算每一个梯形的面积。
printf("%.1f",ans);//格式化输出。
return 0;
}