题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1062

神题一个,直接讲思路了(全都是看别人的)

首先我们把一个云用一个平面上的点(t,length)表示,t表示云的左端到0时的时间,因为运动周期为len*2,所以mod len*2

然后我们要做的就是回答询问(t,l,r)

对于时间>t的点,时间不超过t+r,因为超过t+r,云的左端点就到了r的右边,然后length要在(l-(时间-t),r-(时间-t))之间
对于时间<t的点,时间不小于t-r,因为小于t-r,云的左端点就到了r的右边,然后length要在(l-(t-时间),r-(t-时间))之间

我们要求的答案就是在这两个平行四边形的内部的点的个数,用两个树状数组维护平行四边形内部点的个数(一个左偏45度,一个右偏45度)

实际情况要求4个平行四边形,因为有可能t+r或t-r越界

 const
maxl=;
maxn=;
type
arr=array[..maxl*,..maxl*]of longint;
var
a,b:arr;
t,l:array[..maxn]of longint;
n,len:longint; procedure add(var a:arr;x,y,z:longint);
var
i:longint;
begin
inc(x);
inc(y);
if (x<=) or (y<=) then exit;
while x<=len*+ do
begin
i:=y;
while i<=len*+ do
begin
inc(a[x,i],z);
i:=i+(i and(-i));
end;
x:=x+(x and(-x));
end;
end; function sum(var a:arr;x,y:longint):longint;
var
i:longint;
begin
inc(x);
inc(y);
sum:=;
if x>len* then x:=len*+;
if y>len* then y:=len*+;
sum:=;
while x> do
begin
i:=y;
while i> do
begin
inc(sum,a[x,i]);
i:=i-(i and(-i));
end;
x:=x-(x and (-x));
end;
end; procedure add(x,y,z:longint);
begin
add(a,x,y+x,z);
add(b,x,y-x+len*,z);
end; function area(var a:arr;x1,y1,x2,y2:longint):longint;
begin
exit(sum(a,x2,y2)+sum(a,x1-,y1-)-sum(a,x1-,y2)-sum(a,x2,y1-));
end; procedure main;
var
i,k,tt,cc,ll,rr,dd,s,ans:longint;
begin
read(n,len);
for i:= to n do
begin
read(k);
case k of
:begin
read(tt,cc,ll,rr,dd);
t[cc]:=(tt-dd*ll+len*)mod (len*);
l[cc]:=rr-ll;
add(t[cc],l[cc],);
end;
:begin
read(tt,ll,rr);
tt:=tt mod (len*);
s:=longint(rr=len);
ans:=area(a,tt,ll+tt,rr+tt,len*)
+area(a,,ll+tt-len*,rr+tt-len*-s,len*)
+area(b,tt-rr+len*+s,ll-tt,len*,len*)
+area(b,tt-rr,ll-tt+len*,tt-,len*);
writeln(ans);
end;
:begin
read(tt,cc);
add(t[cc],l[cc],-);
end;
end;
end;
end; begin
main;
end.

1062: [NOI2008]糖果雨 - BZOJ的更多相关文章

  1. 【BZOJ 1062】 1062: [NOI2008]糖果雨 (二维树状数组)**

    1062: [NOI2008]糖果雨 Description 有一个美丽的童话:在天空的尽头有一个" 糖果国" ,这里大到摩天大厦,小到小花小草都是用糖果建造而成的.更加神奇的是, ...

  2. BZOJ 1062: [NOI2008]糖果雨(二维树状数组)

    首先嘛,这道题是非同一般的恶心= = 然后首先膜拜一下CDQ大神ORZ在考场上A了这道题ORZ 这道题看到的话,我是先想把云朵化成在0s时的位置,但很容易发现这样只能单点查询而不能查询整段 结果只能膜 ...

  3. [NOI2008]糖果雨

    bzoj1062[Noi2008]糖果雨 首先给出的颜色没有用. 估计要用数据结构.而线段难以维护. 考虑把线段变成点 T是单增的. 所以询问的时候,存在的线段都可能贡献答案. 那些线段的位置如果可以 ...

  4. [bzoj1062] [NOI2008]糖果雨

    Description 有一个美丽的童话:在天空的尽头有一个" 糖果国" ,这里大到摩天大厦,小到小花小草都是用糖果建造而成的.更加神奇的是,天空中飘满了五颜六色的糖果云,很快糖果 ...

  5. BZOJ 1062 糖果雨

    http://www.lydsy.com/JudgeOnline/problem.php?id=1062 思路:找到平行四边形以后,变换坐标:y->y-kx,k为斜率,这样变成了矩形,然后只要二 ...

  6. bzoj1062【Noi2008】糖果雨

    orz.....神tm数形结合题 题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1062 插入线段,删除线段,查询区间内线段个数,线段随时间往复 ...

  7. 1045: [HAOI2008] 糖果传递 - BZOJ

    Description 有n个小朋友坐成一圈,每人有ai个糖果.每人只能给左右两人传递糖果.每人每次传递一个糖果代价为1.Input 小朋友个数n 下面n行 aiOutput 求使所有人获得均等糖果的 ...

  8. 1065: [NOI2008]奥运物流 - BZOJ

    Sample Input4 1 0.52 3 1 310.0 10.0 10.0 10.0Sample Output30.00 推荐题解:http://blog.csdn.net/whjpji/art ...

  9. 1064: [Noi2008]假面舞会 - BZOJ

    Description 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择一 个自己喜欢的面具.每个面具都有一个编号,主办 ...

随机推荐

  1. iOS 视频开发-AVPlayer

    如果我只是简单的播放一个视频,而不需要考虑播放器的界面.iOS9.0 之前使用 MPMoviePlayerController, 或者内部自带一个 view 的 MPMoviePlayerViewCo ...

  2. Jersey(1.19.1) - Sub-resources

    @Path may be used on classes and such classes are referred to as root resource classes. @Path may al ...

  3. asp.net中webservice与android的json数据交互方式设置

    一 .服务器端设置 1.修改web.config 在web.config里面的的system.Web节点添加 <webServices> <protocols> <add ...

  4. 关于JAVA System常见类的一些总结

    一.JAVA System类概述 1.概述: System 类是一个抽象类,所有的字段和方法都是静态的,即不能被实例化.其中包含一些有用的类字段和方法,它不能被实例化.在 System 类提供的设施中 ...

  5. ORACLE多表查询优化

    ORACLE有个高速缓冲的概念,这个高速缓冲就是存放执行过的SQL语句,那oracle在执行sql语句的时候要做很多工作,例如解析sql语句,估算索引利用率,绑定变量,读取数据块等等这些操作.假设高速 ...

  6. C#判断输入的是否是汉字

    第一种方法:正则表达式 string text = "是不是汉字"; for (int i = 0; i < text.Length; i++) { if (Regex.Is ...

  7. lex&yacc4

    yacc: we cannt use the $$ value dirictly. we need get it irrotly;

  8. 指针与strncpy---内存

    指针的形式的赋值和strncpy的赋值 e.SetAttr("Amt", ToString(dAmt)      ); e.SetAttr("Amt", sAm ...

  9. Mysql数据库迁移 Ubuntu14.04

    1. 停止数据库服务 sudo service mysql stop 2. 创建数据迁移目标文件夹(实际应该是挂载到新硬盘上) cd /var/lib ls -l drwx------  6 mysq ...

  10. DTcms列表隔行换色;loop自带行号

    <%loop cdr2 bcategoryList%> <%if(cdr2__loop__id==1)%> <a class="no-bg" href ...