上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 55 下一页
摘要: 题目链接:https://www.luogu.com.cn/problem/P5340 解题思路: 拆点/分层图最短路。 每个点 \(u\) 及到达点 \(u\) 是所吃汉堡与所喝可乐数量之差 \(p\) 对应一个二元组 \((u,p)\)。对二元组求最短路。 示例程序: #include <bit 阅读全文
posted @ 2021-11-16 19:20 quanjun 阅读(62) 评论(0) 推荐(0)
摘要: 题目大意:对大小为 \(n\) 的数列进行 \(m\) ,每次求出区间最小众数。 解题思路:数列分块。同:LOJ6285. 数列分块入门 9 示例程序: #include <bits/stdc++.h> using namespace std; const int maxn = 40040; int 阅读全文
posted @ 2021-11-09 14:00 quanjun 阅读(39) 评论(0) 推荐(0)
摘要: 题目链接:https://loj.ac/p/6285 设计操作: 区间众数。 解题思路: 我摊牌了,我看的这篇题解:https://www.cnblogs.com/acfunction/p/10051345.html 写的太好了!! 主要操作: \(p_{i,j}\):第 \(i\) 块到第 \(j 阅读全文
posted @ 2021-11-09 13:53 quanjun 阅读(193) 评论(0) 推荐(0)
摘要: 题目链接:https://loj.ac/p/6284 涉及操作: 区间查询某一个数 \(c\) 出现的次数; 区间更新。 解题思路: 一开始的思路是除了整块维护以外,再对每一个区间用一个 multiset 维护每一个数出现的次数。这样更新和查询一次的时间复杂度都会降到 \(O(\sqrt n \lo 阅读全文
posted @ 2021-11-09 09:25 quanjun 阅读(108) 评论(0) 推荐(0)
摘要: 题目链接:[https://loj.ac/p/6283](https://loj.ac/p/6283) 设计操作: 1. 区间加法 2. 区间乘法 3. 单点查询 解题思路: 用 $X_i$ 维护第 $i$ 个分块当前乘的数,用 $Y_i$ 维护第 $i$ 个分块当前加的数。 若当前乘了 $X_i$ 阅读全文
posted @ 2021-11-08 22:15 quanjun 阅读(68) 评论(0) 推荐(0)
摘要: 题目链接:https://loj.ac/p/6282 涉及操作: 单点插入; 单调询问。 解题思路: 每 \(\sqrt n\) 次插入后,重新把数列平均分一下,重构需要的时间复杂度为 \(O(n)\),重构的次数为 \(O(\sqrt n)\),可以解决这个问题。 但是按照原作者的代码,是:如果出 阅读全文
posted @ 2021-11-08 21:07 quanjun 阅读(98) 评论(0) 推荐(0)
摘要: 题目链接:https://loj.ac/p/6281 涉及操作: 区间开方; 区间求和。 解题思路: 主要思路:\(2^{32}\) 次方内的数最多开 \(7\) 次方都会变成 \(1\)。 用 \(tag_i\) 表示第 \(i\) 个分块的整体开方次数,则 \(tag_i \ge 7\) 时这个 阅读全文
posted @ 2021-11-08 18:46 quanjun 阅读(44) 评论(0) 推荐(0)
摘要: 题目链接:https://loj.ac/p/6280 涉及操作: 区间加法; 区间求和。 解题思路: 数列分块。 需要: \(sum_i\) 表示第 \(i\) 个分块单独累加的数值和; \(tag_i\) 表示第 \(i\) 个分块整体累加的数值和(就是分块 \(i\) 内的每个数都会增加 \(t 阅读全文
posted @ 2021-11-08 18:28 quanjun 阅读(118) 评论(0) 推荐(1)
摘要: 题目链接:https://loj.ac/p/6279 涉及操作: 区间加法; 区间询问某个数 \(x\) 的前驱(比其小的最大元素)。 解题思路: 数列分块。思路和第2题思路几乎相同,也是每一段副本排序。完整的分块进行二分查找。 示例程序: #include <bits/stdc++.h> usin 阅读全文
posted @ 2021-11-08 17:16 quanjun 阅读(75) 评论(0) 推荐(0)
摘要: 题目链接:https://loj.ac/p/6278 涉及操作: 区间加法; 区间询问小于某个值 \(x\) 的数的个数。 解题思路: 数列分块。 每个分块保存一个副本并排序(程序中用 vector 容器 vec[i] 来保存第 i 个分块中的信息)。 示例程序: #include <bits/st 阅读全文
posted @ 2021-11-08 15:30 quanjun 阅读(54) 评论(0) 推荐(0)
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 55 下一页