求凸包模版

struct point
{ double x,y; double val,len; }points[20]; point points1[20]; point points2[20]; const int INF=1e8; bool cmp(point a,point b) { if(a.x==b.x) return a.y<b.y; return a.x<b.x; } double chaji(point a,point b,point c,point d) { return (b.x-a.x)*(d.y-c.y)-(b.y-a.y)*(d.x-c.x); } int real[20]; int cover(int potnum) { sort(points1,points1+potnum,cmp); int ansnum=0; for(int i=0;i<potnum;i++) { while(ansnum>1&&chaji(points2[ansnum-2],points2[ansnum-1],points2[ansnum-1],points1[i])<0) ansnum--; points2[ansnum++]=points1[i]; } int k=ansnum; for(int i=potnum-2;i>=0;i--) { while(ansnum>k&&chaji(points2[ansnum-2],points2[ansnum-1],points2[ansnum-1],points1[i])<0) ansnum--; points2[ansnum++]=points1[i]; } if(potnum>1) ansnum--; return ansnum; } double way(point a,point b) { return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); }

转载于:https://www.cnblogs.com/wsruning/p/5703112.html

求凸包(两遍扫描,求上下凸包的方法)相关推荐

  1. 2152 Balloons(两遍bfs求图的连通块)

    2152 Balloons(两遍bfs求图的连通块) Problem Description Both Saya and Kudo like balloons. One day, they heard ...

  2. PAT甲级1111 Online Map (30分):[C++题解]两次dijkstra求单源最短路、保存路径、长度最短、时间最短

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:dijkstra求单源最短路的题目. 只是写两遍而已,第一遍求按照路径长度求,第二遍按照时间最少求. 另外加一个vector路径的判断 ...

  3. 两条直线求交点c语言,C§ 3.3.1两条直线的交点坐标(5页)-原创力文档

    § 3.1两条直线的交点坐标 学习目标 1.掌握判断两直线相交的方法:会求两直线交点坐标: 2.体会判断两直线相交中的数形结合思想. 学习过程 一.课前准备: (预习教材P112~ P114,找出疑 ...

  4. 两个链表求交集_实现两个排序链表的并集和交集

    两个链表求交集 In computer science, a linked list is a linear collection of data elements, whose order is n ...

  5. C++:两个数组求最值、排序、合并

    问题: 对于整型数组a[10]和b[10],编制程序完成下列任务: (1)由用户从键盘为两个数组输入值: (2)求出两个数组的最大值和最小值: (3)把数组a和b中的整数分别从小到大和从大到小排序: ...

  6. 两个整数求平均值,防止溢出的问题

    两个整数求平均值,防止溢出的问题 http://bylijinnan.iteye.com/blog/1463337 bigInteger 没有上限,取决于计算机的内存: https://www.jia ...

  7. python中对两个 list 求交集,并集和差集

    python中对两个 list 求交集,并集和差集: 1.首先是较为浅白的做法: >>> a=[1,2,3,4,5,6,7,8,9,10] >>> b=[1,2,3 ...

  8. c编程:求出4#215;4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和。...

    //求出4×4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和 #include <stdio.h> int main() {int sum=0;int max,mi ...

  9. 利用函数求任意两个数之间的和

    利用函数求任意两个数之间的和 <!DOCTYPE html> <html lang="en"><head><meta charset=&q ...

最新文章

  1. 2021年大数据常用语言Scala(二十二):函数式编程 映射 map
  2. 思科ucs-b系列服务器,思科统一计算系统UCS B系列刀片推荐
  3. HDU 4279 占坑先。。。
  4. iOS应用数据持久化(一)
  5. python中类似对象吗_确定对象是否为Python中类似字节的对象的正确方法是什么?...
  6. php Collection类的设计
  7. fwrite函数的一般调用形式是什么?
  8. access mysql oracle数据库_Oracle Access 数据库连接 使用
  9. 浅谈Hybrid技术的设计与实现【转】
  10. idea远程调试debug
  11. 冯诺依曼计算机模型中存储器,在冯诺依曼计算机模型中存储器是指什么单元?...
  12. word的图片和自选图形组合问题
  13. Python实验-小黑屋
  14. 少男杀手dodolook签约酷6网原创红人阵营
  15. 太飒了!这届乘风破浪的 IT 女神写得了代码、撕得掉年龄、跨得过行业!
  16. android storyboard,iOS中xib与storyboard原理,与Android界面布局的异同
  17. java pdfreader去除水印_Java - PDF操作库 ItextPdf和PdfBox添加水印
  18. 绿布抠图;绿衣服抠图,视频单背景抠图
  19. 电脑如何查看及开启虚拟化
  20. 如何提高固态硬盘读取速度?

热门文章

  1. SQL SERVER 事务处理
  2. oAuth2.0 登录新浪微博 发送新浪微博 代码
  3. Nokia7610彩信设置
  4. unicode 字符串转成 TDesC-转贴
  5. [pytorch、学习] - 5.8 网络中的网络(NiN)
  6. docker --- 镜像、容器
  7. vue --- vue-router
  8. javascript --- 非交互、交互、协作、任务
  9. ES5-7 立即执行函数、闭包深入、逗号运算符
  10. View的绘制-layout流程详解