警示后人,从0到30再到100
查看原帖
警示后人,从0到30再到100
222431
Atlantic_C929楼主2024/3/30 11:31

从去年(2023)4.9到今年3.30,我终于过了这题

。

踩坑无数

(于是过了的我在家里大喊大叫把我家猫猫狗狗吓到了)

总结一下我踩坑踩在哪里了:

1.long long

你就索性写完程序,shift+ctrl+f把int全改long long,然后把main改回int

本人不喜欢用#define ll long long

scanf和printf里面改%lld!!!

2.mod

记得所有该mod(或者说能mod)的运算后面全部%mod

3.+=和=

有这么一句话:

t[p].add+=z;

不是要加mod嘛,于是我不小心写成了:

t[p].add+=(t[p].add+z)%mod;

但其实应该是:

t[p].add=(t[p].add+z)%mod;

这救了我30分

4.顺序

这东西直接导致我从30->100

具体就在懒标记下放的那个函数里面

顺序应该是:

改值->下放mul->下放add->mul=1->add=0

顺序千万不能错

(本人码风抽象,要看代码的去题解里看!)

写线段树不易,请再接再厉!

2024/3/30 11:31
加载中...