hdu4946 Area of Mushroom
来源:互联网 发布:机器人语音对话软件 编辑:程序博客网 时间:2024/05/16 14:53
//凸包,注意凸包边上的点也要包含进去,然后最大速度为0的话都输出0
#include <cstdio>#include <cstring>#include <algorithm>#include<iostream>using namespace std;bool fl[555],damn[555],inc[555];struct P{ int in,x,y,v; friend bool operator < (P a,P b){ if (a.v>b.v) return 1; if (a.v==b.v){ return (a.x<b.x)||(a.x==b.x&&a.y<b.y); } return 0; }}p[555];P ch[555];P operator - (P A, P B){ P c; c.x=A.x-B.x; c.y=A.y-B.y; return c;}int cross(P A,P B){ return A.x*B.y-A.y*B.x;}int conv(int m){ int mm=0; memset(inc,0,sizeof(inc)); for (int i=0;i<m;i++){ while (mm>1&&cross(ch[mm-1]-ch[mm-2],p[i]-ch[mm-2])<0) mm--; ch[mm++]=p[i]; } for (int i=1;i<mm;i++) inc[ch[i].in]=1; int k=mm; for (int i=m-2;i>=0;i--){ while (mm>k&&cross(ch[mm-1]-ch[mm-2],p[i]-ch[mm-2])<0) mm--; if (!inc[p[i].in]) ch[mm++]=p[i]; } if (m>1) mm--; return mm;}int main(){ //freopen("1.in","r",stdin); int n,m,ca=1; while (scanf("%d",&n),n){ for (int i=0;i<n;i++){ scanf("%d%d%d",&p[i].x,&p[i].y,&p[i].v); p[i].in=i; } printf("Case #%d: ",ca++); sort(p,p+n); if(p[0].v==0){for (int i=0;i<n;i++)printf("0");printf("\n");continue;} memset(fl,0,sizeof(fl)); memset(damn,0,sizeof(damn)); m=1; for (int i=1;i<n;i++){ if (p[i].v!=p[i-1].v) break; if (p[i].x==p[i-1].x&&p[i].y==p[i-1].y){ damn[p[i].in]=damn[p[i-1].in]=1; } } for (int i=1;i<n;i++){ if (p[i].v!=p[i-1].v) break; if (p[i].x!=p[i-1].x||p[i].y!=p[i-1].y){ p[m++]=p[i]; } } int chs; chs=conv(m); for (int i=0;i<chs;i++){ fl[ch[i].in]=1; } for (int i=0;i<n;i++){ if (fl[i]==1&&!damn[i]) printf("1"); else printf("0"); } printf("\n"); } return 0;}
0 0
- hdu4946 Area of Mushroom
- hdu4946 Area of Mushroom 凸包
- hdu4946-Area of Mushroom(凸包问题)
- hdu4946 Area of Mushroom(凸包)
- hdu 4946 Area of Mushroom
- HDU 4946 Area of Mushroom
- Hdu 4946 Area of Mushroom
- hdu 4946 Area of Mushroom
- HDU 4946 Area of Mushroom 凸包
- HDU 4946 Area of Mushroom 凸包
- hdu-4946 Area of Mushroom 凸包
- 【凸包】HDU 4946 Area of Mushroom
- HDU 4946 Area of Mushroom(凸包)
- hdu 4946 Area of Mushroom(凸包)
- 【HDU】4946 Area of Mushroom 凸包
- Hdu 1946 Area of Mushroom[凸包]
- hdu 4946 Area of Mushroom 计算几何
- HDU 4946 Area of Mushroom (凸包)
- jjhhlkljl;
- C++编程->pair(对组)
- 25-方向传感器实现指南针
- JavaEE中各个对象的生命周期详解
- C语言,不得不重视的内存分配
- hdu4946 Area of Mushroom
- Lucene Tutorials
- 微信二维码生成
- hdoj 4946 计算几何求凸包
- Prim算法
- GDI编程之 一、GDI相关概念
- Android面试过程描述
- 进制转换
- 【数论】HDU 4952 Number Transformation