2024年暑假关于线段树和树状数组的小知识点

1.线段树的树形结构使得存储其的数组应开4N,其中N为元素个数

2.多用宏定义使代码更简单

3.树状数组求逆序对一般会写成add(a[i],1);quiry(a[i] - 1);这会导致当元素值域包含0时传入-1导致死循环,可以在quiry函数判断合法性;一种比较好的写法是干脆add时add(a[i] + 1, 1),然后直接查询quiry(a[i]),相当于整体区间后移一位不会产生影响,一般我们开数组时会习惯开大一点,比如我喜欢+3(3是我的幸运数字),大部分似乎是+10,一般喜欢卡到填满数组的同学很少(建议改了)

4.对于一些状态表示位运算是一个不错的选择,比较典型的是状压dp,但不应局限于此

 

 

 

忽见陌头杨柳色,悔教夫婿觅封侯

posted @ 2024-08-03 12:59  听纸眠  阅读(44)  评论(0)    收藏  举报