本题的线段树做法是怎么做的

P2434 [SDOI2005] 区间

先使用很基础的操作,也就是线段覆盖的方式,将每一条线段插入线段树。最后求区间的做法是这样子的: 设两个变量a,b。一开始都让他们等于0.开个while(b<=n);每次查询区间【a,b】是否被完全覆盖。是的话,b++;不是的话判断a是否等于b,如果等于。a++,b++;如果a不等于b那么输出a b-1;然后b++,再a=b。 最后跳出循环时也要判断a是否等于b,等于的话程序结束。不等于的话输出a b-1,其实也就是a n。程序结束
by Just_do_it @ 2017-02-16 11:18:01


**稍微补充一点a,b一开始让他们等于1而不是0**。(手抽打错了)
by Just_do_it @ 2017-02-16 11:19:07


再补充一点……**这里的n是指整个区间的长度。**
by Just_do_it @ 2017-02-16 11:21:35


这道题线段树的复杂度最坏情况为(1000000\*log1000000),最好别用,太慢,但可以作为线段树的练手题
by mrkrnblsa @ 2017-03-29 19:31:52


@ mrkrnblsa 可以离散化,那样最坏 nlogn
by GreenJJ @ 2017-08-21 20:44:55


@mrkrnblsa
by GreenJJ @ 2017-08-21 20:46:03


@[GreenJJ](/space/show?uid=28982) 你挖坟了
by mengbierr @ 2017-08-21 20:46:15


咋不能@呢。。。
by GreenJJ @ 2017-08-21 20:47:15


|