蚂蚁区域 (bupt 322)

面积公式为(ai[i].y+ai[i+1].y)*(ai[i+1].x-ai[i].x)/2.0;

 1 #include<iostream>
2 #include<cstdio>
3 #include<cmath>
4 #define N 1005
5 using namespace std;
6 struct node
7 {
8 int x,y;
9 }ai[N],bi[N];
10 double cacu(node ai[],int k)
11 {
12 int i;
13 double ans=0;
14 for(i=0;i<=k;i++)
15 {
16 ans+=(ai[i].y+ai[i+1].y)*(ai[i+1].x-ai[i].x)/2.0;
17 }
18 return ans;
19 }
20 int main()
21 {
22 int t,n,a,b,i;
23 double ans;
24 cin>>t;
25 ai[0].x=0;ai[0].y=0;
26 bi[0].x=0;bi[0].y=0;
27 while(t--)
28 {
29 cin>>n>>a>>b;
30 ai[a+1].x=n;ai[a+1].y=0;
31 bi[b+1].x=n;bi[b+1].y=0;
32 for(i=1;i<=a;i++)
33 {
34 cin>>ai[i].x>>ai[i].y;
35 }
36 for(i=b;i>=1;i--)
37 {
38 cin>>bi[i].x>>bi[i].y;
39 }
40 ans=cacu(ai,a);
41 ans-=cacu(bi,b);
42 printf("%.2lf\n",fabs(ans));
43 }
44 return 0;
45 }
原文地址:https://www.cnblogs.com/qijinbiao/p/2397928.html