摘要: 题解:这道题要打一个乘标记一个加标记,两个标记的优先级是乘法高,所以在乘的时候要将加标记同时乘上一个c,当然,对于每个非完整块一定要记得暴力重构整个块,把加标记和乘标记都初始化. 代码如下: 阅读全文
posted @ 2018-03-13 19:16 Styx-ferryman 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 题解:还是分块,将每个块存入vector,然后在插入的时候就是sqrt(n)级的重构,如果块太大了,暴力将这个块拆开. 代码如下: 阅读全文
posted @ 2018-03-13 19:09 Styx-ferryman 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题解:区间开方emmm,这马上让我想起了当时写线段树的时候,很显然,对于一个在2^31次方以内的数,开方7-8次就差不多变成一了,所以我们对于每次开方,如果块中的所有数都为一了,那么开方也没有必要了. 所以开个tag标记一下当前块是否均为一,如果不是的话每次暴力构块即可 代码如下: 阅读全文
posted @ 2018-03-13 18:52 Styx-ferryman 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 题解:分块的区间求和比起线段树来说实在是太好写了(当然,复杂度也高)但这也是没办法的事情嘛.总之50000的数据跑了75ms左右还是挺优越的. 比起单点询问来说,区间询问和也没有复杂多少,多开一个sum数组记录和,加的时候非完整块暴力重构,完整块加整块.查询时非完整块暴力加,完整块加整块 代码如下: 阅读全文
posted @ 2018-03-13 18:43 Styx-ferryman 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 题解:自然是先分一波块,把同一个块中的所有数字压到一个vector中,将每一个vector进行排序.然后对于每一次区间加,不完整的块加好后暴力重构,完整的块直接修改标记.查询时不完整的块暴力找最接近x的解,完整的块用二分查找,其实还可以用set维护,出于对最暴力AC的尊敬,我并没有这么写.照样过了. 阅读全文
posted @ 2018-03-13 18:27 Styx-ferryman 阅读(333) 评论(0) 推荐(0) 编辑