摘要: 题解 每次开这样的数据结构题感想都大概是如下两点 1.为什么别人代码长度都是我的1/2???? 2.为什么我运行时间都是他们的两倍???? 简单分析一下,我们关注一个区间是否合法只关注这个区间有多少个1,有多少个0 有偶数个1,一定合法,因为3的二进制是11,我们只需要111111拼起来一定除得开3 阅读全文
posted @ 2018-11-18 19:22 sigongzi 阅读(462) 评论(0) 推荐(0) 编辑
摘要: "题面" 题解 转化一下可以变成所有小于等于r的减去小于等于l 1的 然后我们求小于等于x的 显然是 $\sum_{i = 1}^{n} \sum_{j = 1}^{min(i,x)} sum[i] sum[i j]$ 对于$[x,N x]$前缀和被加了$x$遍 对于$[1,N x]$前缀和被减了$ 阅读全文
posted @ 2018-11-18 11:00 sigongzi 阅读(571) 评论(0) 推荐(0) 编辑
摘要: 题解 对于50个k都维护一个$i^k$前缀和即可 查询的时候就是查询一段连续的区间和,再加上根节点的 代码 cpp include define fi first define se second define pii pair define space putchar(' ') define en 阅读全文
posted @ 2018-11-18 09:12 sigongzi 阅读(241) 评论(0) 推荐(0) 编辑
摘要: "题面" 题解 第$i$个数之前的符号是或那么记为0,是与就记为1,得到一个二进数x 然后按位分开考虑,如果这一行是1那么记为1,如果这一位数位0记为0,得到一个二进制数$b_i$ 第$N$行是最高位,如果这一位是1的话,需要有$x define fi first define se second 阅读全文
posted @ 2018-11-18 08:12 sigongzi 阅读(244) 评论(0) 推荐(0) 编辑