线段树经典例题 40pts 求助大佬

P1253 扶苏的问题

@[cz_awa](/user/246331) 你这样的话,如果区间覆盖为0,那不就没法向下传递懒标记了吗
by Shirley_ninefish @ 2023-11-15 21:34:51


你可以定义一个不在-1e9~1e9范围内的inf,初始化和清空时都让lzy1=inf,在pushdown的时候就判断lzy1是否等于inf,等于则表示没被标记,否则下传
by Shirley_ninefish @ 2023-11-15 21:42:10


@[Shirley_ninefish](/user/796071) 明白了,感谢大佬 :)
by cat_lover1 @ 2023-11-15 22:21:25


@[Shirley_ninefish](/user/796071) 我加入了一个bool数组来判断是否需要更改lzy1,但只是50分 ```c _Bool pd1[4000001]; void Pushdown(h){ if(pd1[h]) ... } void Modify(){ if(IN){tr[h]=k;pd1[h]=1,lzy1[h]=k,lzy2[h]=0;return;} ... } ```
by cat_lover1 @ 2023-11-15 22:31:12


@[cz_awa](/user/246331) 同问,我也是加了一个bool,但是也是50分
by GXYZY @ 2023-11-15 22:33:12


我再调调
by cat_lover1 @ 2023-11-15 22:34:18


@[cz_awa](/user/246331) emmm,你开了 long long 吗?
by Shirley_ninefish @ 2023-11-16 07:35:58


我试了一下你的代码,其他地方好像没什么问题,看起来应该就是没开 long long 的问题qwq
by Shirley_ninefish @ 2023-11-16 08:04:32


@[Shirley_ninefish](/user/796071) 感恩大佬,祝你NOIP rp++ 是的,就是long long的锅,我已经ac了
by cat_lover1 @ 2023-11-16 11:27:59


|