F - Icebergs(求简单多边形面积模板)
程序员文章站
2024-01-14 17:18:22
...
- 求多个简单多边形的面积和。
- 以原点为基准点,求一圈向量的叉积,注意绝对值。
#include<bits/stdc++.h>
using namespace std;
int n,t;
long long x[1005],y[1005];
double ans=0,sum;
int main()
{
cin>>t;
while(t--)
{
sum=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%lld%lld",&x[i],&y[i]);
for(int i=0;i<n;i++)
sum+=x[i]*y[(i+1)%n]-x[(i+1)%n]*y[i];
ans+=fabs(sum)/2;
}
cout<<(long long)ans;
}
上一篇: C++ 模板特化和偏特化