题目链接

 /*
Name:nyoj-952-最大四边形
Copyright:
Author:
Date: 2018/4/27 10:46:24
Description:
枚举一条对角线,再选择一个
看大佬们的解释,在二维向量中,叉乘的结果(仍是向量)等于面积
利用叉乘求三角形面积,点的顺时针,
逆时针的正负不同,知道这个点在对角线的哪侧,
分别求出各侧面积的最大的,俩个相加,就为这条对角线所获的最大四边形面积
*/
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const double eps = 1e-;
struct node{
double x ,y;
} arr[];
double cross(node a,node b1,node b2){//求(b1-a) 和(b2-a) 的叉乘
double x1,y1,x2,y2;
x1=b1.x-a.x;
y1=b1.y-a.y;
x2=b2.x-a.x;
y2=b2.y-a.y;
return x1*y2-x2*y1;
}
int main()
{
int n;
while (cin>>n) {
memset(arr, , sizeof(arr));
for (int i=; i<n; i++) {
cin>>arr[i].x>>arr[i].y;
}
double lmax = , rmax = , area = ;
for (int i=; i<n; i++) {
for (int j=i+; j<n; j++) {
lmax = , rmax = ;//如果向量结果为负,取最大值还是0,当然左右是一负一正
for(int k=; k<n; k++) {
if (k != i && k!= j){
/*
分别求出对角线两边的最大面积,向量点乘求出对角线一侧的面积
在没有除以2的时候,求得是平行四边形的面积 求出左右面积最大的情况相加,就是最大的两个平行四边形的面积,
除以2,就是将对角线相同的两个平行四边形各取一半拼起来的最大情况
*/
double tmp = cross(arr[i], arr[j], arr[k]);
lmax = max(lmax, tmp);
rmax = max(rmax, -tmp);
}
}
if(lmax <= eps || rmax <= eps) continue;
area = max(area, lmax + rmax);
}
}
printf("%lf\n", area / );
}
return ;
}

nyoj-952-最大四边形 (向量叉乘)的更多相关文章

  1. nyoj 952 最大四边形 计算几何 转载

    事实再一次证明:本小菜在计算几何上就是个渣啊,唉,,, 题意:平面上n个点(n<=300),问任意四个点组成的四边形(保证四条边不相交)的最大面积是多少. 分析: 原文地址 1.第一思路是枚举四 ...

  2. nyoj 952 : 最大四边形 (计算几何)

    题目链接 任意四边形均可看作是两个三角形拼接得到的(即使是凹四边形),故 可以O(n^2)枚举所有的线段,然后对每条线段O(n)枚举线段端点外的其他点,用来更新以此线段构成的三角形的有向面积的最大值m ...

  3. js判断向量叉点 并求出交点坐标

     代码如下可以直接运行,判断向量相交并求出交点坐标 <!DOCTYPE html> <html> <head> <meta http-equiv=" ...

  4. 【十天自制软渲染器】DAY 03:画一个三角形(向量叉乘算法 & 重心坐标算法)

    如果你喜欢我写的文章,可以把我的公众号设为星标 ,这样每次有更新就可以及时推送给你啦. 前面两天画了点和线,今天我们来画一个最简单也是最强大的面--三角形. 本文主要讲解三角形绘制算法的推导和思路(只 ...

  5. matlab cross 3*1 向量叉乘

    一定是1*3  或者3*1 的向量才可以叉乘 A=[1 2 3] B=[4 5 6] cross(A,B) ans=[-3 6 -3] 解决机器人微分运动量之间的等价关系

  6. nyoj-1016-德莱联盟(向量叉乘判断线段相交)

    叉乘的坐标表示: A(X1,Y1), B(X2, Y2), C(XC,YC), D(XD, YD);AB = (X2-X1, Y2-Y1);CD = (XD-XC, YD-YC); 向量AB,CD的叉 ...

  7. HDU 2036 求任意多边形面积向量叉乘

    三角形的面积可以使用向量的叉积来求: 对于 三角形的面积 等于: [(x2 - x1)*(y3 - y1)- ( y2 - y1 ) * ( x3 - x1 )  ] / 2.0 但是面积是有方向的, ...

  8. 向量叉乘 Cross product

    参考:Wiki Cross product

  9. Unity 向量点乘、叉乘

    向量点乘计算角度,向量叉乘计算方位 a,b为向量 点乘计算公式:a x b = |a| x |b| x cosθ 叉乘计算公式:a x b = |a| x |b| x sinθ

随机推荐

  1. 20170330 ABAP代理生成

    在线文档ABAP代理生成, ABAP 代理生成(事物SPROXY)使您能够通过使用企业服务资源中企业服务资源库中 的接口描述在SAP系统中生成ABAP代理对象. ABAP代理生成概览: 1.代理标识, ...

  2. Django的Model继承abstract,proxy,managed。。。

    Django 中的 model 继承和 Python 中的类继承非常相似,只不过你要选择具体的实现方式:让父 model 拥有独立的数据库:还是让父 model 只包含基本的公共信息,而这些信息只能由 ...

  3. python之路 模块,序列化,迭代器,生成器

    一.模块 1.模块简介 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能.这也是使用python标准库的方法. 类似于函数式编程和面向过 ...

  4. iOS 认识runtime 中的三个指针 isa , IMP , SEL

    runtime中函数调用经常被提及的三个概念 isa,IMP,SEL 一  isa:是类指针,之所以说isa是指针是因为Class其实是一个指向objc_class结构体的指针,而isa 是它唯一的私 ...

  5. javascript;select动态添加和删除option

    <select id="sltCity"></select> //添加Option. var optionObj = new Option(text, va ...

  6. Windows读写文件的猫腻

    这里主要涉及对于回车换行的讨论. 回车:\r 换行:\n Windows读写文件分为普通文件读写和二进制文件读写. 如果以二进制的方式读写文件(如rb, wb),将会完全的把文件内容读出来,不做任何处 ...

  7. spring RMI的使用

    Spring整合RMI的原理 客户端的核心是RmiProxyFactoryBean,包含serviceURL属性和serviceInterface属性. 通过JRMP访问服务.JRMP JRMP:ja ...

  8. redis操作封装整理

    <?php /** * redis操作类 * 说明,任何为false的串,存在redis中都是空串. * 只有在key不存在时,才会返回false. * 这点可用于防止缓存穿透 * */ cla ...

  9. 主攻ASP.NET.4.5.1 MVC5.0之重生:系统角色与权限(二)

    系统角色篇 数据结构 用户管理 Controller代码 public class SystemUserController : Controller { //public void Log() // ...

  10. 20145240 《Java程序设计》第二次实验报告

    20145240 <Java程序设计>第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.04.12 实验 ...