`
godfrey90
  • 浏览: 56090 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

7th_E

阅读更多
本题思路,首先求出每两点之间的距离,储存在d中,然后穷举所有情况,通过海伦公式计算三角形面积,找出最大的面积。
#include<cstdio>
#include<cmath>
int n;
int x[110];
int y[110];
double d[110][110];

double result=0;
int main(){
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d%d",&x[i],&y[i]);
	}
	for(int i=0;i<n;i++){
		for(int j=i+1;j<n;j++){
			double temp=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
			d[j][i]=temp;
			d[i][j]=temp;
		}
	}
	for(int i=0;i<n;i++){
		for(int j=i+1;j<n;j++){
			for(int k=j+1;k<n;k++){
				double p = (d[i][j]+d[i][k]+d[j][k])/2;
				double temp = sqrt(p*(p-d[i][j])*(p-d[i][k])*(p-d[j][k]));
				if(temp>result){
					result=temp;
				}
			}
		}
	}
	printf("%.1lf\n",result);
	return 0;
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics