hdu 1700(圆最大内接三角形)
来源:互联网 发布:华为算法工程师好进吗 编辑:程序博客网 时间:2024/05/08 03:01
题目链接:hdu 1700
题意:给出以原点为圆心的圆上一个点,求以此点在从圆上找两个点求解三角形面积最大时,那两个点的坐标
分析:本题所用的三角形其实就是圆内接正三角形;
证明如下:
三角形的面积由底边和高两个因素决定,不管底边所在弦有多少,
但其高只有经过圆心的为最大,
故毫无质疑必须是等腰三角形。
设等腰三角形ABC,高AH,圆心O,AO=BO=R,OH=AH-AO,设高为x,
BH=√[R^2-(x-R)^2]=√(2Rx-x^2),
∴S=x√(2Rx-x^2),
dS=√(2Rx-x^2)+(1/2)*(2Rx-x^2)^(-1/2)*(2R-2x)*x=(2Rx-x^2+Rx-x^2)/√(2Rx-x^2)=0,
2x^2-3Rx=0,
x=3R/2,根据实际问题,该驻点有极大值,
即当x=3R/2时有最大面积,而高AH=3R/2,正是正三角形,
∴当圆内接正三角形时具有最大面积。
所以只需要求解出所给点绕圆心旋转120度所得点坐标即可,不过不要忘记所给答案是有顺序的,先按y再按x
代码如下:
#include <set>#include <map>#include <stack>#include <queue>#include <math.h>#include <vector>#include <string>#include <utility>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>#include <functional>using namespace std;const double pi=acos(-1);const int maxn=100005;const int INF=0x3f3f3f;const double eps=1e-5;int dcmp(double x){ if(fabs(x)<eps)return 0; if(x>0)return 1; return -1;}//精度为eps的比较struct Point{ double x,y;}p[maxn],a[maxn],b[maxn];bool cmpx(Point a,Point b){ return a.x<b.x;}//按x排序bool cmpy(Point a,Point b){ return a.y<b.y;}//按y排序Point cals(Point a,Point b,double r){ Point ans; ans.x=(a.x-b.x)*cos(r)-(a.y-b.y)*sin(r)+b.x; ans.y=(a.x-b.x)*sin(r)+(a.y-b.y)*cos(r)+b.y; return ans;}//旋转int main(){ int t; scanf("%d",&t); Point ter; ter.x=0; ter.y=0; while(t--){ Point a; scanf("%lf%lf",&a.x,&a.y); Point b,c; b=cals(a,ter,pi*2/3); c=cals(a,ter,pi*4/3); Point ans; if(dcmp(b.y-c.y)>0){ ans=b; b=c; c=ans; } if(dcmp(b.y-c.y)==0){ if(cmpx(b,c)!=1){ ans=b; b=c; c=ans; } } printf("%.3f %.3f %.3f %.3f\n",b.x,b.y,c.x,c.y); } return 0;}
0 0
- hdu 1700(圆最大内接三角形)
- hdu 3934 Summer holiday(凸包最大内接三角形)
- HDU 3934 Summer holiday & Poj 2079 Triangle(凸包最大内接三角形)
- HDU 2202 最大三角形(求凸包中最大三角形面积)
- 1730数字三角形问题(三角形内路径最大)
- HDU 2202(凸包内最大三角形面积)
- hdu 2202 最大三角形 (旋转卡壳)
- hdu 2202 最大三角形
- HDU 2202最大三角形
- 最大三角形 HDU
- POJ 2079 凸包最大内接三角形
- HDU1700 Points on Cycle (最大内接三角形)
- HDU 2202 求最大三角形
- hdu acm 2202 最大三角形
- 三维空间中的圆与三角形(一):圆与内接三角形
- hdu 2202 最大三角形(凸包模板)
- HDU 2202 最大三角形 (凸包+旋转卡壳)
- HDU 2022 最大三角形(点集合中最大三角形)
- OpennCV中Mat的属性介绍
- Interleaving String
- 【一天一道LeetCode】#64. Minimum Path Sum.md
- 神秘的40毫秒延迟与 TCP_NODELAY
- xcode下出现Undefined symbols for architecture arm64或者armv7: “_OBJC_CLASS_$_XXX
- hdu 1700(圆最大内接三角形)
- iOS开发之高级视图—— UINavigationController(三)结合编辑功能
- Http 一次请求过程
- <AOP:aspectj-autoproxy/>
- 机器学习之一——kNN算法
- Qt之QAbstractButton
- 专心做题
- 【HDU】 1124 Factorial
- hdu 3861 The King’s Problem (tarjan 算法+二分图最大匹配)