nyoj952最大四边形
来源:互联网 发布:淘宝金融平台官网 编辑:程序博客网 时间:2024/06/06 17:09
最大四边形
时间限制:1000 ms | 内存限制:65535 KB
难度:2
- 描述
- 平面坐标上有n个点,你知道能组成四边形中面积最大的是多少吗?
- 输入
- 有多组测试数据
第一行整数n,表示有n个点,( 4<=n<=300 )
然后n行,每行x,y表示点的坐标。(没有重复的点) - 输出
- 最大四边形的面积.(保留六位小数)
- 样例输入
50 00 44 04 42 3
- 样例输出
16.000000
- 解题思路:枚举每条线段作为四边形的对角线然后计算线段左边最大面积直线右端最大面积相加即可
#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#define eps 1e-10using namespace std;struct point{double x,y;}A[310];int sgn(double n){if(fabs(n)<eps)return 0;if(n<0)return -1;return 1;}double cp(point p1,point p2,point p3){return (p2.x-p1.x)*(p3.y-p1.y)-(p2.y-p1.y)*(p3.x-p1.x);}double MAX(double a,double b){return a>b?a:b;}int main(){int n,i,j,k;while(scanf("%d",&n)!=EOF){for(i=0;i<n;++i){scanf("%lf%lf",&A[i].x,&A[i].y);}double ans=0;for(i=0;i<n;++i){for(j=i+1;j<n;++j){//枚举边double S,Sa=0,Sb=0;for(k=0;k<n;++k){//枚举每一个点 if(k==i||k==j)continue;double S=0.5*cp(A[i],A[j],A[k]);if(sgn(S)<0)Sa=MAX(Sa,-S);else Sb=MAX(Sb,S);}if(Sa==0||Sb==0)continue; //不能四边形ans=MAX(ans,Sa+Sb);}}printf("%.6lf\n",ans);}return 0;}
0 0
- nyoj952最大四边形
- nyoj952最大四边形 思路+代码
- nyoj952——最大四边形
- nyoj952 最大四边形(叉乘+技巧)
- NYOJ952--最大四边形--叉积分成三角形
- 最大四边形
- NYOJ 952 最大四边形
- nyist 最大四边形
- nyoj 952 最大四边形
- 柱形图中求最大四边形面积
- 任意凸四边形内最大矩形
- N个点求最大的四边形面积
- hdu4386(求四边形最大面积)
- 计算几何 求n个点中最大四边形
- NYOJ 952 最大四边形 (n个点求组成四边形的最大面积)
- NYOJ 题目952 最大四边形(几何,技巧)
- nyoj 最大四边形 952 (数学几何+技巧) 好题
- poj Fishnet 1408 (求最大四边形面积) 好题
- Linux中的likely()和unlikely()
- 最近在看学生管理系统登陆界面
- EXCEL中的空间数据转换为shapefile和GDB中的feature class
- java中abstract的用法
- test super
- nyoj952最大四边形
- Android学习记录:线程
- 死锁
- 背包问题
- hdu-5475-An easy problem-线段树求乘积
- 字符串加密
- hdu(5477)——A Sweet Journey
- backup
- ANDROID之路-Android_点击Notification打开一个Activity的两种方式