zkw线段树修正 标记上升

恢复一下被吞的blog。。

今天才发现统计的力量很坑爹,同时发现了我写线段树的漏洞。

首先说我自己的问题,线段树最后一层的第一个节点不能用,但我以前用了而且一直没出问题,这次涉及区间修改才出现问题。

然后是统计的力量,里面关于区间修改,区间查询最大值的代码有bug,不但修改上传标记与查询回收标记一个是求最小值的,一个是最大值的,而且标记上传也不完全,查询时不能改开区间等等问题,幸亏有奥特曼的程序,否则我一直调不出。

值得一提的是,zkw这种标记上传,差分思想确实很厉害。

ps:网上几乎找不到这种zkw线段树做动态修改的rmq问题的程序

 

{$M 1000000000}
uses math;
var m1,n,ans,s,ss,m:longint;
    l,r,tail:array[1..1000000]of longint;
    t:array[0..2621440]of longint;
    next,sora:array[1..6000000]of longint;
procedure inf;
begin
 assign(input,'river.in');reset(input);
 assign(output,'river.out');rewrite(output)
end;
procedure ouf;
begin
 close(input);close(output)
end;
procedure origin;
var i:longint;
begin
 m1:=1;
 while m1<n<<1+3 do m1:=m1<<1;
 for i:=1 to n do tail[i]:=i;ss:=n
end;
procedure link(x,y:longint);
begin
 inc(ss);next[tail[x]]:=ss;tail[x]:=ss;sora[ss]:=y;
 inc(ss);next[tail[y]]:=ss;tail[y]:=ss;sora[ss]:=x
end;
procedure dfs(x,y:longint);
var i,ne:longint;
begin
 inc(s);l[x]:=s;
 i:=x;
 while next[i]<>0 do begin
  i:=next[i];ne:=sora[i];
  if 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值