【计算几何】HDU 2108 Shape of HDU 凸包
来源:互联网 发布:foxmail数据存在哪里 编辑:程序博客网 时间:2024/05/22 00:16
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2108
#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<algorithm>using namespace std;struct point { double x,y; };bool mult(point sp,point ep,point op){ return (sp.x-op.x)*(ep.y-op.y)>=(ep.x-op.x)*(sp.y-op.y);}bool operator < (const point &l,const point &r){ return l.y<r.y || (l.y==r.y && l.x < r.x);}int graham(point pnt[],int n,point res[]){ //pnt是图中的所有的点,res是通过判断后在凸边行边上的点,而且这些点都是按逆时针存储的,n是所有点的个数 int i,len,k = 0,top = 1; sort(pnt,pnt+n); if(n == 0) return 0; res[0]=pnt[0]; if(n == 1) return 1; res[1]=pnt[1]; if(n == 2) return 2; res[2]=pnt[2]; for(i=2;i<n;i++) { while(top && mult(pnt[i],res[top],res[top-1])) top--; res[++top] = pnt[i]; } len = top; res[++top] = pnt[n-2]; for(i=n-3;i>=0;i--){ while(top!=len && mult(pnt[i],res[top],res[top-1])) top--; res[++top]=pnt[i]; } return top; // 返回凸包中点的个数}point res[50001],pnt[50001];int main() { int n; while(~scanf("%d",&n) && n) { for(int i=0;i<n;i++) scanf("%lf%lf",&pnt[i].x,&pnt[i].y); if(graham(pnt,n,res) == n) puts("convex"); else puts("concave"); } return 0; }
0 0
- hdu 2108 Shape of HDU(计算几何:凸包)
- 【计算几何】HDU 2108 Shape of HDU 凸包
- hdu-2108-Shape of HDU(计算几何)
- hdu 2108 Shape of HDU(计算几何)
- 计算几何 凸包 hdoj2108 Shape of HDU
- HDU 2108 Shape of HDU(计算几何)
- HDU 2108 Shape of HDU (计算几何)
- HDU 2108 Shape of HDU(凸包)
- HDU 2108 Shape of HDU(几何)
- HDU 2108 Shape of HDU [凸包.判断凸包]
- 专题:计算几何学 凸包 hdu2108 shape of hdu
- hdu 2108 Shape of HDU 计算几何(向量的叉积)
- hdu 2108 Shape of HDU 计算几何(向量的叉积)
- HDU2108 Shape of HDU - 计算几何 判断凹凸多边形
- ACM-计算几何之Shape of HDU——hdu2108
- 【计算几何初步-判断是否凸多边形】【HDU2108】Shape of HDU
- hdu 4946 Area of Mushroom 计算几何(凸包)
- HDU 4946 - Area of Mushroom (计算几何 凸包)
- 水水的博客,华科与西工大的纠结
- 并发队列ConcurrentLinkedQueue与阻塞队列LinkedBlockingQueue的区别
- kvm安装与启动过程说明
- hunnu11472(判有向图是否有有向环)
- 一个动作,多个人感兴趣,存引用
- 【计算几何】HDU 2108 Shape of HDU 凸包
- 2015阿里巴巴校招在线笔试题
- 对getElementsByTagName("*")获取全部元素的总结
- TestNG介绍
- kvm安装与启动过程说明-Kernel源码编译方式
- 数据结构_课程设计——最小生成树:室内布线
- javascript继承
- iOS常见问题之动态修改UINavigationController的rightBarButtonItem的title
- KVM硬件辅助虚拟化之 EPT(Extended Page Table)