poj2826

来源:互联网 发布:大数据具体用到的技术 编辑:程序博客网 时间:2024/06/05 10:22

题意:平面上两条线段,问能接住多少雨水

方法:首先看两条线段能否相交,不相交肯定为0。

         如果相交,求得交点后判断4个端点中是否存在两个点其纵坐标大于交点坐标,如果不存在,肯定为0

         如果存在,判断高板是否将低板遮挡,过高于纵坐标的两个端点中较低的那个(p1)做垂线,如果交点存在且纵坐标大于p1纵坐标,

         则被遮挡,为0。否则过p1做一条水平线与另一条线段相交得交点p3则面积就是 fabs(cross(p,p1,p3))/2了

WA点:此题考察线段能接多少雨水而非能盛多少雨水。存在能盛雨水,但是雨水无法垂直落入的情况,比较难想。

 

代码:

原创粉丝点击