ssl例1

来源:互联网 发布:指纹密码锁软件下载 编辑:程序博客网 时间:2024/05/18 02:14

桌子上零散地放着若干个盒子,桌子的后方是一堵墙。如右图所示。现在从桌子的前方射来一束平行光, 把盒子的影子投射到了墙上。问影子的总宽度是多少?


题解:

给线段树每个节点增加一个域cover。cover=1表示该结点所对应的区间被完全覆盖,cover=0表示该结点所对应的区间未被完全覆盖。

代码:

if s[p].cover=0 then
    begin
        m:=(s[p].b+s[p].e) div 2;
        if (a=s[p].b)and(b=s[p].e) then
           s[p].cover:=1
        else if b<=m then insert(p*2,a,b)
        else if a>=m then insert(p*2+1,a,b)
        else begin
           insert(p*2,a,m);
           insert(p*2+1,m,b);
        end;
    end;

3 0
原创粉丝点击