CFgym:Glyph Recognition(计算几何)
来源:互联网 发布:道路测量员软件说明书 编辑:程序博客网 时间:2024/05/18 20:47
▶ Given some points in the plane, and 3 ≤ k ≤ 8, find two regular k-gons containing all the points between them.
▶ Each polygon is centered at the origin, i.e. all vertices have equal distance to (0, 0).
▶ Each polygon has a vertex on the positive x-axis.
▶ The inner polygon is the largest such polygon containing none of the sample points.
▶ The outer polygon is the smallest such polygon containing all of the sample points
▶ Over all values of k, maximize the ratio Sinner/Souter of polygon areas.
题意:给一堆点,要求用正3~8边形任意一种,去覆盖这些点,要满足上述条件,令内正多边形面积/外正多边形面积最大。
思路:
要求的是所有点的OC长度,先将点化成极坐标,根据对称,将所有点转移到第一份格子即[0,360/K]内。知道OA的长度和角度,从而根据三角函数轻易求出OB和OC的长度,取长度最小和最大的比一下即可。
# include <bits/stdc++.h># define pi acos(-1.0)using namespace std;struct node{ double dis, ang;}a[1003];double cal(int k, int n){ double f = 360.0/k*pi/180.0; double imax = 0, imin = 1e18, tmp; for(int i=0; i<n; ++i) { tmp = a[i].ang-(int)(a[i].ang/(360.0/k))*(360.0/k); tmp = tmp*pi/180.0; double len = cos(tmp-f/2)*(a[i].dis); len = len/cos(f/2.0); imax = max(imax, len); imin = min(imin, len); } return imin*imin/(imax*imax);}int main(){ int n, id; double x, y, ans = 0; scanf("%d",&n); for(int i=0; i<n; ++i) { scanf("%lf%lf",&x,&y); a[i].dis = sqrt(x*x+y*y); a[i].ang = atan(y/x)*180/pi; if(x < 0) a[i].ang += 180; if(a[i].ang < 0 && x >= 0) a[i].ang += 360; } for(int i=3; i<=8; ++i) { if(cal(i,n) > ans) { ans = cal(i, n); id = i; } } printf("%d %.10f\n",id,ans); return 0;}
阅读全文
0 0
- CFgym:Glyph Recognition(计算几何)
- CFGym 100803DSpace Golf+物理(数学)计算
- CFgym:Castle(KMP)
- CFGym
- CFGym
- CFGym
- CFGym
- CFGym
- POJ2318(计算几何)
- poj1939(计算几何)
- POJ1265Area(计算几何)
- sicily_1012 (计算几何)
- HDU1086(计算几何)
- Intersection (计算几何)
- 计算几何(一)
- 计算几何(草稿)
- CFgym:Database(字符串处理)
- CFgym:Palindromization(字符串Hash)
- 《Discrete Mathematic with Applications》读书笔记四
- SSH框架--struts2浅析《二》之配置文件
- 软件工程的开发过程
- POJ 2499 Binary Tree
- java产生随机数的几种方式
- CFgym:Glyph Recognition(计算几何)
- Java序谈之数组排序(冒泡、选择、二分查找)
- Java返回值-类、抽象类、接口
- 让你不再害怕指针
- 8.5 日期的格式化(不同区域的星期格式)
- gedit给launch文件添加高亮
- 深入探讨在集群环境中使用 EhCache 缓存系统
- iOS App 稳定性指标及监测
- hadoop40