题面只有图片版,如下所示:


暴搜代码:
#include<bits/stdc++.h>
using namespace std;
struct node{ //表示点的结构体
int x,y;
}ns[3001];
double dis(node a,node b){ //求两点之间的距离
return sqrt(1.0*(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>ns[i].x>>ns[i].y;
}
double area=0.0; //面积和
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
for(int k=j+1;k<=n;k++){
node a=ns[i],b=ns[j],c=ns[k];
double d1=dis(a,b),d2=dis(b,c),d3=dis(a,c);
double p=(d1+d2+d3)/2.0;
area+=sqrt(1.0*p*(p-d1)*(p-d2)*(p-d3)); //运用海伦公式,求三角形面积
}
}
}
printf("%.1lf",area);
return 0;
}
AC 10 个点,WA 3 个点,TLE 12 个点(说实话,我不知道为什么 WA)。
请各位神犇帮忙解说思路,谢谢!