
分析
叉积求面积,乘上B。每个三角形面积相加,最后取绝对值
上代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<iomanip>
using namespace std;
double n,b,x[100011],y[100011],ans;
double cj(double x1,double y1,double x2,double y2)
{
return x1*y2-x2*y1;
}
int main()
{
cin>>n>>b;
for(int i=1;i<=n;i++)
{
cin>>x[i]>>y[i];
}
for(int i=1;i<=n;i++)
{
int j=i+1;
if(j==n+1) j=1;
ans+=0.5*cj(x[i],y[i],x[j],y[j]);
}
printf("%.4lf",abs(ans*b));
return 0;
}