Codeforces Round #198 (Div. 2) B. Maximal Area Quadrilateral
来源:互联网 发布:iphone改铃声软件 编辑:程序博客网 时间:2024/06/01 13:50
Iahub has drawn a set of n points in the cartesian plane which he calls "special points". A quadrilateral is a simple polygon without self-intersections with four sides (also called edges) and four vertices (also called corners). Please note that a quadrilateral doesn't have to be convex. A special quadrilateral is one which has all four vertices in the set of special points. Given the set of special points, please calculate the maximal area of a special quadrilateral.
The first line contains integer n (4 ≤ n ≤ 300). Each of the next n lines contains two integers: xi, yi ( - 1000 ≤ xi, yi ≤ 1000) — the cartesian coordinates of ith special point. It is guaranteed that no three points are on the same line. It is guaranteed that no two points coincide.
Output a single real number — the maximal area of a special quadrilateral. The answer will be considered correct if its absolute or relative error does't exceed 10 - 9.
50 00 44 04 42 3
16.000000
In the test example we can choose first 4 points to be the vertices of the quadrilateral. They form a square by side 4, so the area is 4·4 = 16.
题 意就是找4个点,求最大的四边形的面积,枚举对角线,我们可以求出上三角形的最大值,和下三角形的最大值,这样,我们就可以得出最大的四边形的面积,用叉积可以得出面积,还可以通过其正负,得出是上三角形,还是下三角形,这样,就可以得到了n^3的算法了!
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;#define M 350#define eps 0#define inf 10000000000struct node { double x,y;}p[M];double mul(int i,int j,int k){ return ((p[k].x-p[i].x)*(p[k].y-p[j].y)-(p[k].y-p[i].y)*(p[k].x-p[j].x))/2.0;}int main(){ int n,i,j,k; while(scanf("%d",&n)!=EOF){ for(i=0;i<n;i++){ scanf("%lf%lf",&p[i].x,&p[i].y); } double lmax=-inf,rmax=-inf,amax=-inf; for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(i==j) continue; lmax=-inf,rmax=-inf; for(k=0;k<n;k++){ if(i==k||j==k) continue; double temp=mul(i,j,k); if(temp<eps){ lmax=max(lmax,-temp); } else { rmax=max(rmax,temp); } } amax=max(amax,lmax+rmax); // printf("%.6f %.6ffdsf\n",amax,lmax+rmax); } } printf("%.6f\n",amax); } return 0;}
- Codeforces Round #198 (Div. 2) B. Maximal Area Quadrilateral
- Codeforces Round #198 (Div. 2) B. Maximal Area Quadrilateral
- Codeforces Round #198 (Div. 2)B. Maximal Area Quadrilateral(4边形面积)
- Codeforces Round #198 (Div. 2) / 340B Maximal Area Quadrilateral (点集中的最大四边形)
- 简单几何 cf198 B. Maximal Area Quadrilateral
- B. Maximal Area Quadrilateral(叉积模板)
- CodeForces 340B Maximal Area Quadrilateral(凸包+旋转卡壳)
- Codeforce Maximal Area Quadrilateral
- Codeforce Maximal Area Quadrilateral
- CF 340B Maximal Area Quadrilateral 叉积有向面积
- Codeforces Round #131 (Div. 2) A B
- Codeforces Round #134 (Div. 2)B. Airport
- Codeforces Round #170 (Div. 2) problem B
- Codeforces Round #173 (Div. 2) Problem B
- Codeforces Round #181 (Div. 2) B. Coach
- Codeforces Round #185 (Div. 2)--A,B
- Codeforces Round #171 (Div. 2) B
- Codeforces Round #169 (Div. 2) B题
- hdu 1230 火星A+B
- 引用作为返回值的注意事项
- Java学习笔记10 —— 类的构造函数
- 浏览器输入网址后台是如何运作的
- Code Sign error: Provisioning profile 'xxx' can't be found
- Codeforces Round #198 (Div. 2) B. Maximal Area Quadrilateral
- Ubuntu10.04 挂载硬盘windows分区时提示输入密码
- PowerPoint
- zoj_2833
- POJ 3176 Cow Bowling
- 结构体位字段对其问题,加上位域的情况
- db2 缓冲池命中率
- 黑马程序员-网络编程总结
- Linux下批量转换文件编码