思路:
用叉积求多边形面积
c o d e code code
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
double ans;
int n;
double x[101010], y[101010];
double js(double x1, double y1, double x2, double y2)
{
return x1*y2-x2*y1;
}
int main()
{
double B;
scanf("%d%lf", &n, &B);
for(int i=1; i<=n; i++)
scanf("%lf%lf", &x[i], &y[i]);
for(int i=1; i<n; i++)
{
int j=i+1;
ans+=js(x[i],y[i],x[j],y[j])/2.0;
}
ans+=js(x[n], y[n], x[1], y[1])/2.0;
printf("%.4lf", abs(ans)*B);
return 0;
}