摘要:
分块训练 两个tag,优先算乘法的tag。 暴力更新的时候要把乘法标记和加法标记都清空。 include define INF 0x3f3f3f3f define full(a, b) memset(a, b, sizeof a) using namespace std; typedef long 阅读全文
摘要:
分块训练 每块里面方一个vector,查询的时候找到是第几块的第几个。。 插入的话,先查询,然后在块内暴力插入。 为了防止多次在同一块插入而劣化复杂度,所以每sqrt(n)次就重新分块。。 阅读全文
摘要:
分块训练 参考hzwer的做法,每个数在经过数次向下取整的开方后都会变成0或1。 我们在维护块内信息的时候,可以将整块全是0或1的块跳过,减少复杂度。 include define INF 0x3f3f3f3f define full(a, b) memset(a, b, sizeof a) usi 阅读全文
摘要:
分块训练 分好块维护一个sum数组,中间区间只更新加标记,两边暴力更新即可。 include define INF 0x3f3f3f3f define full(a, b) memset(a, b, sizeof a) using namespace std; typedef long long l 阅读全文