11 2021 档案

摘要:题目链接:https://loj.ac/p/132 解题思路: 设元素组元素为 ai,其方差数组为 di=aiai1ax=i=1xdi 所以有 \(\sum\limits_{i=1}^{x} a_i = 阅读全文
posted @ 2021-11-27 09:38 quanjun 阅读(152) 评论(0) 推荐(0) 编辑
摘要:题目大意: 给定一个大小为 n 的数列 a1,a2,,an,你需要对这个数列进行 m 次操作,操作包含如下两种类型: 1 x y z :将区间 [x,y] 范围内的所有元素更新为 z(即:\(a_x, a_{x+1}, \ldots, 阅读全文
posted @ 2021-11-26 17:29 quanjun 阅读(123) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P3870 涉及操作: 区间取反; 区间和。 其中, sum[i] 表示第 i 个分块的元素和,tag[i] 表示整体是否需要取反。 示例程序: #include <bits/stdc++.h> us 阅读全文
posted @ 2021-11-19 16:32 quanjun 阅读(66) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P2357 涉及操作: 区间更新; 单点更新(直接算到区间更新里面); 区间查询; 单点查询(直接算到区间查询里面)。 解题思路: 数列分块。 tag[i] 表示第 i 个分块中每个数都增加的值;\(sum[ 阅读全文
posted @ 2021-11-19 13:01 quanjun 阅读(97) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P1928 后缀表达式模板题。 示例程序: #include <bits/stdc++.h> using namespace std; const int maxn = 20020; char s[maxn]; int n; 阅读全文
posted @ 2021-11-18 18:30 quanjun 阅读(95) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P2419 解题思路: 本题其实是求解一类 “关键点”(这里指的关键点是所有点和它之间都能够达到的那些点),我是用dfs搜了 n 边,因为是 DAG ,所以时间复杂度为 O(n2)。 但是虽然题面里说保证是 阅读全文
posted @ 2021-11-18 13:48 quanjun 阅读(80) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P1119 解题思路: floyd变种题。主要要了解floyd算法的本质就是dp,状态 fi,j 其实是状态 fi,j,k 的状态压缩,表示 ij 仅由前 k 个点( 阅读全文
posted @ 2021-11-18 13:16 quanjun 阅读(65) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P1073 解题思路: 将每个点 u,拆成三层: 第 0 层:(u,0); 第 1 层:(u,1); 第 2 层:(u,2)。 各层之间依次建图。 然后对于任意点 阅读全文
posted @ 2021-11-17 14:53 quanjun 阅读(31) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P7297 解题思路: 对于每个颜色 c,在第 c 层作出一条链,对于 1i<n(i,c)(i,c+1) 之间有一条权值为 1 的双向边。 \((i, 阅读全文
posted @ 2021-11-16 22:24 quanjun 阅读(72) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P5340 解题思路: 拆点/分层图最短路。 每个点 u 及到达点 u 是所吃汉堡与所喝可乐数量之差 p 对应一个二元组 (u,p)。对二元组求最短路。 示例程序: #include <bit 阅读全文
posted @ 2021-11-16 19:20 quanjun 阅读(52) 评论(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 阅读(34) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://loj.ac/p/6285 设计操作: 区间众数。 解题思路: 我摊牌了,我看的这篇题解:https://www.cnblogs.com/acfunction/p/10051345.html 写的太好了!! 主要操作: pi,j:第 i 块到第 \(j 阅读全文
posted @ 2021-11-09 13:53 quanjun 阅读(136) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://loj.ac/p/6284 涉及操作: 区间查询某一个数 c 出现的次数; 区间更新。 解题思路: 一开始的思路是除了整块维护以外,再对每一个区间用一个 multiset 维护每一个数出现的次数。这样更新和查询一次的时间复杂度都会降到 \(O(\sqrt n \lo 阅读全文
posted @ 2021-11-09 09:25 quanjun 阅读(79) 评论(0) 推荐(0) 编辑
摘要:题目链接:[https://loj.ac/p/6283](https://loj.ac/p/6283) 设计操作: 1. 区间加法 2. 区间乘法 3. 单点查询 解题思路: 用 Xi 维护第 i 个分块当前乘的数,用 Yi 维护第 i 个分块当前加的数。 若当前乘了 Xi 阅读全文
posted @ 2021-11-08 22:15 quanjun 阅读(59) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://loj.ac/p/6282 涉及操作: 单点插入; 单调询问。 解题思路: 每 n 次插入后,重新把数列平均分一下,重构需要的时间复杂度为 O(n),重构的次数为 O(n),可以解决这个问题。 但是按照原作者的代码,是:如果出 阅读全文
posted @ 2021-11-08 21:07 quanjun 阅读(85) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://loj.ac/p/6281 涉及操作: 区间开方; 区间求和。 解题思路: 主要思路:232 次方内的数最多开 7 次方都会变成 1。 用 tagi 表示第 i 个分块的整体开方次数,则 tagi7 时这个 阅读全文
posted @ 2021-11-08 18:46 quanjun 阅读(38) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://loj.ac/p/6280 涉及操作: 区间加法; 区间求和。 解题思路: 数列分块。 需要: sumi 表示第 i 个分块单独累加的数值和; tagi 表示第 i 个分块整体累加的数值和(就是分块 i 内的每个数都会增加 \(t 阅读全文
posted @ 2021-11-08 18:28 quanjun 阅读(87) 评论(0) 推荐(1) 编辑
摘要:题目链接:https://loj.ac/p/6279 涉及操作: 区间加法; 区间询问某个数 x 的前驱(比其小的最大元素)。 解题思路: 数列分块。思路和第2题思路几乎相同,也是每一段副本排序。完整的分块进行二分查找。 示例程序: #include <bits/stdc++.h> usin 阅读全文
posted @ 2021-11-08 17:16 quanjun 阅读(57) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://loj.ac/p/6278 涉及操作: 区间加法; 区间询问小于某个值 x 的数的个数。 解题思路: 数列分块。 每个分块保存一个副本并排序(程序中用 vector 容器 vec[i] 来保存第 i 个分块中的信息)。 示例程序: #include <bits/st 阅读全文
posted @ 2021-11-08 15:30 quanjun 阅读(43) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://loj.ac/p/6277 涉及操作: 区间更新; 单点查询。 解题思路: 数列分块。 a[i] 表示:第i个数自己存储的值 block 表示每个分块的最大尺寸 belong[i] 表示:第i个数所属的分块 tag[i] 表示:第i个分块的累加值 示例程序: #includ 阅读全文
posted @ 2021-11-08 14:55 quanjun 阅读(30) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P3402 题目大意: 给定 n 个集合,第 i 个集合内初始状态下只有一个数,为 i。 有 m 次操作。操作分为 3 种: 1 a b 合并 a,b 所在集合; 2 k 回到 阅读全文
posted @ 2021-11-08 11:24 quanjun 阅读(59) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P3919 解题思路: 主席树纯模板题。 示例程序: #include <bits/stdc++.h> using namespace std; const int maxn = 1000010; struct Tree { 阅读全文
posted @ 2021-11-08 09:39 quanjun 阅读(26) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://www.luogu.com.cn/problem/P6883 解题思路: 对于每个状态 s,它的上一个状态 s 必然满足:s 的二进制表示中恰好有一位和 s 不相同,且那一位为 1。(设这一位为第 i 位) 然后遍历 \( 阅读全文
posted @ 2021-11-06 12:29 quanjun 阅读(81) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.zzuli.edu.cn/problem.php?id=2834 题目大意: 给定一个大小为 n 的数列 ai,对于每个 ai,求它前面由后往前第 k 个大于 ai 的数。 解题思路: 假设一开始区间 [1,n] 阅读全文
posted @ 2021-11-02 12:50 quanjun 阅读(144) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示