分析
暴力出奇迹
这题还是用暴力比较简单
我们先来找一下关键
三角形有一条边与 $x$ 轴平行,且有另一条边与 $y$ 轴平行
这样的话,这个三角形一定是直角三角形,我们就不必考虑其他情况了
输出栅栏柱子可以围成的合法三角形的最大面积的两倍
众所周知,求三角形面积的公式: $ S = 1 / 2 a h $ (抱歉,我不会打分数线)
乘 $2$ 就等于 $a h$,就直接底乘高OK
下面来讲讲如何找一个三角形
判断是否是一个满足条件的三角形,只要满足点 $i$ 和点 $j$ 的 $x$ 坐标相等,点 $j$ 和点 $k$ 的 $y$ 坐标相等就行了
代码仅供参考
#include<bits/stdc++.h>
using namespace std;
int x[1000001],y[1000001];
int main(){
int n,ans=0;
cin>>n;
for(int i=1;i<=n;i++) cin>>x[i]>>y[i];
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
for(int k=1;k<=n;k++){
if(i==j||j==k||i==k) continue;
if(x[i]==x[j]&&y[j]==y[k]) ans=max(ans,abs(x[i]-x[k])*abs(y[i]-y[k]));
}
}
}
cout<<ans;
return 0;
}