求最大的四边形面积 + 叉乘的应用
/*求四边形面积 + 叉乘的应用 http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=952题意:有n个点,求这些点能组成的最大四边形面积思路:两层循环用来枚举每一条线段,分别求线段两边最远的点,即与该线段所组成的三角形面积最大。该线段也就是四边形的对角线
*/
#include <iostream>
#include <math.h>
#include <algorithm>
#include <stdio.h>
#include <string.h>
using namespace std;
#define eps 1e-10#define maxn 310
struct point
{double x,y;
}Point[maxn];/*
double cross(point p1,point p2,point p0)///叉乘求三角形的面积
{double abx = p2.x - p1.x;double aby = p2.y - p1.y;double acx = p0.x - p1.x;double acy = p0.y - p1.y;return (abx*acy - aby*acx)*0.5;
}*/
//简约版
double cross(point p1,point p2,point p0)///叉乘求三角形的面积
{ return ((p1.x-p0.x)*(p2.y-p0.y)-(p1.y-p0.y)*(p2.x-p0.x))*0.5;
} int main()
{int n;while(~scanf("%d",&n)){for(int i=0; i<n; i++)scanf("%lf %lf",&Point[i].x,&Point[i].y);double ans=0,lmax=0,rmax;for(int i=0; i<n; i++){for(int j=i+1; j<n; j++)///这两个for是枚举对角线的两个点{rmax=0,lmax=0;for(int k=0; k<n; k++)///这是枚举对角线两侧的点{if(k!=i && k!=j){double s=cross(Point[i],Point[j],Point[k]);if(s<eps) lmax=max(lmax,-s);else rmax=max(rmax,s);}}if(lmax==0 || rmax==0) continue;///判断是否构成四边形ans=max(ans,(rmax+lmax));///比较各对角线所获的最大四边形的面积}}printf("%.6lf\n",ans);}return 0;
}
求最大的四边形面积 + 叉乘的应用相关推荐
- Gym - 102460L Largest Quadrilateral(几何-凸包+旋转卡壳求最大的四边形面积)
题目链接:点击查看 题目大意:在笛卡尔坐标系上给出 n 个点,要求选出四个点,使得组成的四边形面积最大,求出这个最大的面积,注意此处组成的四边形不是严格意义上的四边形,只需要选四个点就行 题目分析:首 ...
- poj1408 四边形面积
这道题就是一个求线段交点+四边形面积. 线段的交点要可以用公式计算,前提是要保证它们确实相交. //计算两线段交点,调用前请判线段是否相交(同时还是要判断是否平行!) point intersecti ...
- 算法之美——求两直线交点(三维叉积)——求四边形面积(二维叉积)
一般方程法: 直线的一般方程为F(x) = ax + by + c = 0.既然我们已经知道直线的两个点,假设为(x0,y0), (x1, y1),那么可以得到a = y0 – y1, b = x1 ...
- c++ 求四边形面积和周长_C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少?...
C语言编程题:任意输入4个点,求围成四边形的面积是多少.代码如下: #include "stdio.h" #include "math.h" void main ...
- 任意给4条边求形成四边形面积最大值
题目:任意给4条边,求形成四边形面积最大值. 结论:形成的四边形的四个顶点都在它的外接圆上,面积S满足: 其中 这也即是圆内接四边形的面积公式. 证明过程: 首先我们把四边形的四个顶点和四条边顺次分别 ...
- bzoj1069: [SCOI2007]最大土地面积 凸包+旋转卡壳求最大四边形面积
在某块平面土地上有N个点,你可以选择其中的任意四个点,将这片土地围起来,当然,你希望这四个点围成的多边形面积最大. 题解:先求出凸包,O(n)枚举旋转卡壳,O(n)枚举另一个点,求最大四边形面积 /* ...
- c++ 求四边形面积和周长_C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少?C语言编程题 题目:任意输入4...
C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少? C语言编程题 题目:任意输入4 www.zhiqu.org 时间: 2020-12-07 我测试过了,四点一线,凹四边形,四边形 ...
- 【求四边形面积_Java语言编程题】
给四个点的坐标,求四边形面积(java版) java版 //任意输入4个点,求围成四边形的面积是多少? //四点一线.凹四边形.四边形,有两个点共点,都可以套用. public long getAre ...
- 求三角形 四边形面积(python)
注:对于四边形,需要先按顺时针或者逆时针排序,可以对凸四边形或者凹四边形进行计算. #!/usr/bin/env python # -*- coding: utf-8 -*- "" ...
最新文章
- python 读取文件到字典读取顺序_python_实现dictionary按照输入顺序输出
- [转]在.NET环境中实现每日构建(Daily Build)--NAnt篇
- 你能体会那种写 Python 时不用 import 的幸福吗?
- LeetCode 657. 机器人能否返回原点
- 转:数字对讲机常识介绍
- php数组foreach循环添加键值对_循环 - PHP二维数组根据键值对获取一组数组 (不使用foreach)...
- 拜托!程序员的工作不能用时间来衡量
- 微信公众号模板消息推送,中文乱码
- 【Java】QuickHit游戏
- JavaScript中的this指向以及bind()函数
- 一位百度AI工程师的求职经历(offer/面经/干货/感悟)
- 性能优化,进无止境---内存篇(下)
- STM32F103_study61_The punctual atoms(Clock System Intro)
- 2022-03-25 Python作业3
- html表白程序源码_表白程序源码html_程序员表白代码html
- Android 内存优化——常见内存泄露及优化方案
- 四轮差分驱动平台gazebo插件
- UTF8 To GBK 转换程序
- 日更100天(42)每天进步一点点
- 华南理工计算机应用在线答题,华南理工大学计算机应用基础随堂练习题目及答案...