【POJ2007】Scrambled Polygon(点集逆时针排序--极角排序/凸包--只适用于凸多边形)
题目地址:http://poj.org/problem?id=2007
解题思路:
每个点都和(0,0)点连接,构成一个向量,逆时针排序这些向量的极角逐渐增大。用atan2求解误差较大,会wa(;´༎ຶД༎ຶ`)舍弃该方法
排完序后的点集,任取相邻两个点A(在前),B(在后),定有Cross(A,B)>0,故cmp函数可写成:
bool cmp(Point A, Point B) {return Cross(A,B) > 0; }
注意:此方法只适用于凸多边形,故也可用求凸包的方法解这道题,代码略。
ac代码:
极角排序
#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;
const double eps = 1e-8;
const double pi = acos(-1.0);
const int maxn = 1000;
int dcmp(double x)
{if(fabs(x) < eps) return 0;else return x > 0 ? 1 : -1;
}
struct Point
{double x,y;Point(int x=0, int y=0):x(x),y(y){}
};
typedef Point Vector;
double Cross(Vector a, Vector b)//外积
{return a.x * b.y - a.y * b.x;
}
bool cmp(Point A, Point B)
{return Cross(A,B) > 0;
}
int n = 0;
Point p[maxn];
int main()
{//freopen("/Users/zhangkanqi/Desktop/11.txt","r",stdin);while(~scanf("%lf %lf",&p[n].x, &p[n].y)) n++;sort(p+1, p+n, cmp);for(int i = 0; i < n; i++){printf("(%d,%d)\n", (int)p[i].x, (int)p[i].y);}return 0;
}
【POJ2007】Scrambled Polygon(点集逆时针排序--极角排序/凸包--只适用于凸多边形)相关推荐
- 简单几何(极角排序) POJ 2007 Scrambled Polygon
题目传送门 题意:裸的对原点的极角排序,凸包貌似不行. /************************************************ * Author :Running_Time ...
- POJ - 1696 Space Ant(极角排序)
题目链接:点击查看 题目大意:现在有一只特殊的蚂蚁,它会按照以下规则尽可能长的寻找路径: 不能回头 不能右转 只能逆时针行走 现在给出n个点,输出最长的路径 题目分析:既然是逆时针旋转,那么每次只能走 ...
- 【CCCC】L3-009 长城 (30分),计算几何+凸包,极角排序
problem L3-009 长城 (30分) 正如我们所知,中国古代长城的建造是为了抵御外敌入侵.在长城上,建造了许多烽火台.每个烽火台都监视着一个特定的地区范围.一旦某个地区有外敌入侵,值守在对应 ...
- BZOJ 1132 [POI2008]Tro(极角排序)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1132 [题目大意] 平面上有N个点. 求出所有以这N个点为顶点的三角形的面积和(N&l ...
- L3-021 神坛(极角排序求三角形最小面积)
在古老的迈瑞城,巍然屹立着 n 块神石.长老们商议,选取 3 块神石围成一个神坛.因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好.特殊地,如果有两块神石坐标相同,或者三块神石共线,神坛的面 ...
- POJ 1696 Space Ant(极角排序)【计算几何】
ACM博客_kuangbin POJ 1696 Space Ant(极角排序) Space Ant Time Limit: 1000MS Memory Limit: 10000K Total Su ...
- bzoj 1914: [Usaco2010 OPen]Triangle Counting 数三角形——极角排序
Description 在一只大灰狼偷偷潜入Farmer Don的牛群被群牛发现后,贝西现在不得不履行着她站岗的职责.从她的守卫塔向下瞭望简直就是一件烦透了的事情.她决定做一些开发智力的小练习,防止她 ...
- HihoCoder - 1879 Rikka with Triangles(极角排序求所有锐角三角形的面积)
题目链接:点击查看 题目大意:给出 n ( n <= 2000 ) 个点,求出所有不同的锐角三角形的面积 题目分析:n^3 暴力枚举肯定是不可以的,和之前写过的一个题目思路很像:HDU-5784 ...
- codeforces 598C C. Nearest vectors(极角排序)
题目链接: C. Nearest vectors time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- poj2280--Amphiphilic Carbon Molecules(扫描线+极角排序+转换坐标)
poj2280--Amphiphilic Carbon Molecules(扫描线+极角排序+转换坐标) 题目链接:点击打开链接 题目大意:给出n个点的坐标.每一个点有一个值0或者1,如今有一个隔板( ...
最新文章
- Android 功能防抖 的实现
- 如何在多Node版本的情况下公用一个npm
- 照葫芦画瓢-class(类)
- chrome 调试 ios h5
- H5 Canvas maximum-scale图像模糊解决办法
- PostgreSQL环境变量
- Android开发技术周报 Issue#102
- Android 编码规范:(二)遇到多个构造器参数时要考虑用构建器
- QCC3005 控制AMP_Mute的管脚配置问题
- C语言--简单除法运算
- Fiddler修改返回数据教程,亲测有效
- python词云去除词_Python生成歌词词云
- 无法验证驱动程序的签名_无法验证应用?掉签名打不开应用?没越狱也能解决!...
- IDEA创建SSM(Spring+SpringMVC+Mybatis)项目-Jar包版
- 美团移动端UI一致性解决方案探索
- Error: errCode: -501000 | errMsg: Environment create at tencentcloud cannot access from wx-miniapp
- 求绝对值最大值 -java求绝对值
- Unity WebGL错误集锦
- FPGA UART仿真
- zp2ss matlab,控制系统计算机仿真(matlab)实验三实验报告
热门文章
- GPO备份还原复制及导入
- 网管面试题1-windows
- 举例说明计算机网络协议,第二章计算机网络协议与体系结构.ppt
- ubuntu php加载不了gd,ubuntu 中php不支持gd库的freetype,导致页面验证码无法加载
- mysql日期为00_MySQL 8.0.13设置日期为0000-00-00 00:00:00时出现的问题解决
- html基础 — area(图像的作用区域标记)
- spring cloud微服务分布式云架构-Gateway入门 1
- iOS开发UI篇--仿射变换(CGAffineTransform)使用小结
- Android 学习思维导图
- java web 学习计划