题目地址: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(点集逆时针排序--极角排序/凸包--只适用于凸多边形)相关推荐

  1. 简单几何(极角排序) POJ 2007 Scrambled Polygon

    题目传送门 题意:裸的对原点的极角排序,凸包貌似不行. /************************************************ * Author :Running_Time ...

  2. POJ - 1696 Space Ant(极角排序)

    题目链接:点击查看 题目大意:现在有一只特殊的蚂蚁,它会按照以下规则尽可能长的寻找路径: 不能回头 不能右转 只能逆时针行走 现在给出n个点,输出最长的路径 题目分析:既然是逆时针旋转,那么每次只能走 ...

  3. 【CCCC】L3-009 长城 (30分),计算几何+凸包,极角排序

    problem L3-009 长城 (30分) 正如我们所知,中国古代长城的建造是为了抵御外敌入侵.在长城上,建造了许多烽火台.每个烽火台都监视着一个特定的地区范围.一旦某个地区有外敌入侵,值守在对应 ...

  4. BZOJ 1132 [POI2008]Tro(极角排序)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1132 [题目大意] 平面上有N个点. 求出所有以这N个点为顶点的三角形的面积和(N&l ...

  5. L3-021 神坛(极角排序求三角形最小面积)

    在古老的迈瑞城,巍然屹立着 n 块神石.长老们商议,选取 3 块神石围成一个神坛.因为神坛的能量强度与它的面积成反比,因此神坛的面积越小越好.特殊地,如果有两块神石坐标相同,或者三块神石共线,神坛的面 ...

  6. POJ 1696 Space Ant(极角排序)【计算几何】

    ACM博客_kuangbin POJ 1696 Space Ant(极角排序) Space Ant Time Limit: 1000MS   Memory Limit: 10000K Total Su ...

  7. bzoj 1914: [Usaco2010 OPen]Triangle Counting 数三角形——极角排序

    Description 在一只大灰狼偷偷潜入Farmer Don的牛群被群牛发现后,贝西现在不得不履行着她站岗的职责.从她的守卫塔向下瞭望简直就是一件烦透了的事情.她决定做一些开发智力的小练习,防止她 ...

  8. HihoCoder - 1879 Rikka with Triangles(极角排序求所有锐角三角形的面积)

    题目链接:点击查看 题目大意:给出 n ( n <= 2000 ) 个点,求出所有不同的锐角三角形的面积 题目分析:n^3 暴力枚举肯定是不可以的,和之前写过的一个题目思路很像:HDU-5784 ...

  9. codeforces 598C C. Nearest vectors(极角排序)

    题目链接: C. Nearest vectors time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  10. poj2280--Amphiphilic Carbon Molecules(扫描线+极角排序+转换坐标)

    poj2280--Amphiphilic Carbon Molecules(扫描线+极角排序+转换坐标) 题目链接:点击打开链接 题目大意:给出n个点的坐标.每一个点有一个值0或者1,如今有一个隔板( ...

最新文章

  1. Android 功能防抖 的实现
  2. 如何在多Node版本的情况下公用一个npm
  3. 照葫芦画瓢-class(类)
  4. chrome 调试 ios h5
  5. H5 Canvas maximum-scale图像模糊解决办法
  6. PostgreSQL环境变量
  7. Android开发技术周报 Issue#102
  8. Android 编码规范:(二)遇到多个构造器参数时要考虑用构建器
  9. QCC3005 控制AMP_Mute的管脚配置问题
  10. C语言--简单除法运算
  11. Fiddler修改返回数据教程,亲测有效
  12. python词云去除词_Python生成歌词词云
  13. 无法验证驱动程序的签名_无法验证应用?掉签名打不开应用?没越狱也能解决!...
  14. IDEA创建SSM(Spring+SpringMVC+Mybatis)项目-Jar包版
  15. 美团移动端UI一致性解决方案探索
  16. Error: errCode: -501000 | errMsg: Environment create at tencentcloud cannot access from wx-miniapp
  17. 求绝对值最大值 -java求绝对值
  18. Unity WebGL错误集锦
  19. FPGA UART仿真
  20. zp2ss matlab,控制系统计算机仿真(matlab)实验三实验报告

热门文章

  1. GPO备份还原复制及导入
  2. 网管面试题1-windows
  3. 举例说明计算机网络协议,第二章计算机网络协议与体系结构.ppt
  4. ubuntu php加载不了gd,ubuntu 中php不支持gd库的freetype,导致页面验证码无法加载
  5. mysql日期为00_MySQL 8.0.13设置日期为0000-00-00 00:00:00时出现的问题解决
  6. html基础 — area(图像的作用区域标记)
  7. spring cloud微服务分布式云架构-Gateway入门 1
  8. iOS开发UI篇--仿射变换(CGAffineTransform)使用小结
  9. Android 学习思维导图
  10. java web 学习计划