math - 给定n个点。找出面积最大的三角形
问题描述
给定平面上具有整数坐标的 n 个点。给定点满足条件:上述n个点中的任意3个构成一个三角形。找出面积最大的三角形。
(3 <= n <= 5000, ( -10^8 < xi , yi < 10^8 )
时间限制:2 秒
我无法改进我的代码 - 使用 3 个 for 循环
...
using namespace std;
const int maxn = 5005;
int n, a, b, c;
long long x[maxn], y[maxn], maxS;
long long DienTich(int a, int b, int c){
return abs((x[b]-x[a]) * (y[c]-y[a]) - (x[c]-x[a]) * (y[b]-y[a]));
}
int main(){
cin >> n;
for (int i = 1; i <= n; i++)
cin >> x[i] >> y[i];
for (int i = 1; i <= n; i++)
for (int j = i+1; j <= n; j++)
for (int k = j+1; k <= n; k++)
if (DienTich(i, j, k) > maxS){
maxS = DienTich(i, j, k);
a = i; b = j; c = k;
}
cout << x[a] << ' ' << y[a] << '\n';
cout << x[b] << ' ' << y[b] << '\n';
cout << x[c] << ' ' << y[c];
}
解决方案
推荐阅读
- mysql - 使用 mysql 创建新项目时找不到“config/databases/mysql.yml”
- delphi - DynArraySize() 只能在最多 649 个整数元素的数组中正常工作
- javascript - 如何创建动态字段的 Ant Design 组
- python - Python,如何获取每个文件的唯一 ID 数并将每个文件的文件名和唯一 ID 存储在 csv 文件中?
- elasticsearch - elasticsearch脚本字段,无法获取嵌套字段的值
- c++ - 在 Qt C++ 中初始化 QColors 列表
- javascript - 使用 ng-repeat 过滤
- cors - Chrome 在它的“Access-Control-Allow-Origin”错误消息中给了我错误的 URL
- android - 如何从小米红米 Note 中使用相机拍摄的图像中检测旋转值?
- php - 如何同时使用 for 和 foreach