今天吉林市11选五开:BZOJ 1007, 水平可见直线

吉林省十一选五走势图 www.el2sw.cn 2/10/2017来源:ASP.NET技巧人气:5491

PRoblem

传送门

Mean

参见题目描述。

Analysis

将直线按斜率排序,然后从小到大依次入栈,入栈时计算该直线与栈顶元素交点。 若该交点在栈顶元素与栈顶下一个元素交点的左侧(或重合),则栈顶元素被完整遮挡,出栈。 反复比较,全部操作完毕后栈中元素即为可见水平直线。

Code

#include<cstdio> #include<cmath> #include<algorithm> using namespace std; const double EPS=1e-10; const int N=50005; int n,top,s[N]; bool f[N]; struct Line{ int id; double a,b; bool Operator < (const Line &B) const { if(fabs(a-B.a)<EPS) return b<B.b; return a<B.a; } }l[N]; double Cross(Line A,Line B){return (B.b-A.b)/(A.a-B.a);} int main(){ scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%lf%lf",&l[i].a,&l[i].b); l[i].id=i; } sort(l,l+n); for(int i=0;i<n;i++){ while(top){ if(fabs(l[s[top]].a-l[i].a)<EPS) top--; else if(top>1 && Cross(l[s[top]],l[i])<=Cross(l[s[top-1]],l[s[top]])) top--; else break; } s[++top]=i; } for(int i=1;i<=top;i++) f[l[s[i]].id]=1; for(int i=0;i<n;i++) if(f[i]) printf("%d ",i+1); return 0; }

  • “游、购、娱”持续升温 中国经济内生动力表现强劲 2019-04-19
  • 我老张工经历过中国计划经济时代,实践过计划经济,岂能不知计划经济?!现在的市场经济,我也有了实践感受。比较之,深感计划经济是适合社会主义的,而市场经济是不适合社 2019-04-19
  • [酷]此文已经把马克思理论、边际理论、人类需求层次理论、生物学理论、心理学理论、社会管理学理论等理论在哲学层面完美融合了! 2019-04-18
  • 特朗谱跟你一样,也经常懵逼:“这么简单的道理也想不通?”;"西方民主这么好,你咋不学捏?? 2019-04-18
  • 大学毕业生是不是越来越过剩?当然大学毕业生可以在多种行业就业,比如农村、服务业等等。不过,过剩还是一种极大的浪费。 2019-04-17
  • 要战胜对手需要学习对手的长处,弥补自己的短处,但这不是关键,关键是发扬自己的长处。这叫你打你的,我打我的。 2019-04-16
  • [大笑]精神心理科医生在等你…… 2019-04-16
  • 燃!来南京,看中国电科如何燃爆第八届世界雷达展 2019-04-15
  • VAR技术再抢镜 瑞典队1-0点杀韩国 2019-04-15
  • 中国共产党各时期的入党誓词 2019-04-14
  • 浙江:三批次壁纸抽检不合格 选购注意“看摸擦闻” 2019-04-13
  • 世界杯—凯恩补时绝杀独中两元 英格兰2 2019-04-12
  • 全国首例!团队联合成功攻关,这项新技术让食管癌手术更精准 2019-04-12
  • 线下提前一刻钟!电影节加映场开票出福利 2019-04-11
  • 蔬菜大县敲开“阿里巴巴” 2019-04-10
  • 231| 530| 877| 159| 224| 305| 993| 338| 118| 428|