随笔分类 -  菜鸡刷题笔记-分块

摘要:链接: https://loj.ac/problem/6285 题意: 给出一个长为 的数列,以及 个操作,操作涉及询问区间的最小众数。 思路: vector维护每个值的出现位置, 预处理第i快到第j块 的众数,然后对不成块的跑暴力, 数组开小了一直wa..找题解,好多题解代码也过不了... 代码: 阅读全文
posted @ 2019-08-30 14:19 YDDDD 阅读(172) 评论(0) 推荐(0)
摘要:链接: https://loj.ac/problem/6284 题意: 给出一个长为 的数列,以及 个操作,操作涉及区间询问等于一个数 的元素,并将这个区间的所有元素改为 。 思路: 维护一个分块是否全部等于一个值,不等于时跑暴力即可. 查询一段时先把对应的分块更新再查询和更改. 代码: c++ i 阅读全文
posted @ 2019-08-30 11:17 YDDDD 阅读(146) 评论(0) 推荐(0)
摘要:链接: https://loj.ac/problem/6283 题意: 给出一个长为 的数列,以及 个操作,操作涉及区间乘法,区间加法,单点询问。 思路: 考虑整块的乘法, 同时对整块的add标记也要乘,对单点操作时, 注意要对整块暴力修改完再操作. 代码: c++ include include 阅读全文
posted @ 2019-08-30 10:04 YDDDD 阅读(99) 评论(0) 推荐(0)
摘要:链接: https://loj.ac/problem/6282 题意: 给出一个长为 的数列,以及 个操作,操作涉及单点插入,单点询问,数据随机生成。 思路: vector 维护每个区间, 当某个区间的值太多时,重构一下. 代码: c++ include include include includ 阅读全文
posted @ 2019-08-29 21:27 YDDDD 阅读(109) 评论(0) 推荐(0)
摘要:链接: https://loj.ac/problem/6281 题意: 给出一个长为 的数列 ,以及 n个操作,操作涉及区间开方,区间求和。 思路: 考虑开方5次之后就为1, 即考虑一整个区间的开方次数,对小于5次的区间暴力开方,否则就不管他. 代码: c++ include include inc 阅读全文
posted @ 2019-08-29 20:50 YDDDD 阅读(139) 评论(0) 推荐(0)
摘要:链接: https://loj.ac/problem/6280 题意: 给出一个长为n 的数列,以及 n个操作,操作涉及区间加法,区间求和。 思路: sum维护区间和, tag维护每个区间多加的,不是一整块的暴力加进去,算的时候加上tag即可. 代码: c++ include include inc 阅读全文
posted @ 2019-08-29 15:44 YDDDD 阅读(132) 评论(0) 推荐(0)
摘要:链接: https://loj.ac/problem/6279 题意: 给出一个长为 的数列,以及 个操作,操作涉及区间加法,询问区间内小于某个值 的前驱(比其小的最大元素)。 思路: 同样的分块加二分,只不过是更新值 代码: c++ include include include include 阅读全文
posted @ 2019-08-23 00:01 YDDDD 阅读(149) 评论(0) 推荐(0)
摘要:链接: https://loj.ac/problem/6278 题意: 给出一个长为 的数列,以及 个操作,操作涉及区间加法,询问区间内小于某个值 的元素个数。 思路: 分块,用vector维护每个区域的数值,每次通过二分去找满足的值. 每次单个修改时 代码: c++ include include 阅读全文
posted @ 2019-08-22 20:55 YDDDD 阅读(367) 评论(0) 推荐(0)
摘要:链接: https://loj.ac/problem/6277 题意: 给出一个长为 的数列,以及 个操作,操作涉及区间加法,单点查值。 思路: 线段树可以解决,用来学习分块. 分块概念就是,将序列分为sqrt(n)块,每次区间操作在满足一个快时操作块,最多sqrt(n)块, 处于边界时,直接对边界 阅读全文
posted @ 2019-08-22 15:29 YDDDD 阅读(139) 评论(0) 推荐(0)