随笔分类 -  acm / 数据结构

摘要:(线段树 + 思维)or 动态dp [Problem - F - Codeforces](https://codeforces.com/contest/1743/problem/E) 题意 数轴上有 $n$ 个线段 $[l,r];(0<=l<=r<=3*10^5)$ ,表示有一个集合 $s_i$ 为 阅读全文
posted @ 2022-10-19 16:16 hzy0227 阅读(38) 评论(0) 推荐(0) 编辑
摘要:GCD + st表 + 二分 Problem - 1632D - Codeforces 题意 给出一个长度为 $n;(1<=n<=2*10^5)$ 的数组 $a[i];(1<=a[i]<=10^9)$, 可以修改任何一个位置的数为任何一个正整数,对于任意一段区间 $[l,r];(1<=l<=r<=n 阅读全文
posted @ 2022-10-17 14:01 hzy0227 阅读(23) 评论(0) 推荐(0) 编辑
摘要:组合数学 + 树形DP + 单调栈 题目详情 - G Good Permutation (pintia.cn) 题意 对于一个 $[1,n];(1<=n<=10^6)$ 的排列 $p$,有 $m;(1<=m<=10^6)$ 个限制 每个限制给定一组下标 $l,r$, 满足 $max(p_l,p_{l 阅读全文
posted @ 2022-09-27 20:15 hzy0227 阅读(136) 评论(4) 推荐(2) 编辑
摘要:贪心、逆序对 E - String Reversal 题意 给一个长度为 n 的字符串 s,(n <= 2e5), 把 s 反转后的字符串记为 s', 每次只可以交换相邻两个字符,求把 s 变为 s' 的最小次数 思路 可以从左到右枚举 s,对于当前位置 i,字符 a 要变成 字符 b,则较靠前的 阅读全文
posted @ 2022-08-14 19:18 hzy0227 阅读(30) 评论(0) 推荐(0) 编辑
摘要:数数(离线树状数组处理可持久化问题) 题意 给定 \(n(1<=n<=10^5)\) 长度的数组 \(a_i(0<=a_i<=10^9)\), 进行 \(m\) 次询问,格式为 \(l,r,v\),每次询问 \(l<=i<=r\) ,有多少 \(a_i<=v\) 数数 - 题目 - Daimayua 阅读全文
posted @ 2022-06-12 17:07 hzy0227 阅读(66) 评论(0) 推荐(0) 编辑
摘要:矩形面积并 扫描线,线段树 http://oj.daimayuan.top/course/15/problem/688 #include <iostream> #include <algorithm> #include <cstring> #include <vector> #include <cm 阅读全文
posted @ 2022-06-07 15:15 hzy0227 阅读(22) 评论(0) 推荐(0) 编辑
摘要:线段树 单点修改,区间查询 线段树2 - 题目 - Daimayuan Online Judge #include <iostream> #include <cstring> #include <algorithm> #include <vector> #include <cmath> using 阅读全文
posted @ 2022-06-04 17:37 hzy0227 阅读(88) 评论(0) 推荐(0) 编辑
摘要:D - Max GEQ Sum 单调栈 + st表 如果枚举每个区间的话,就算用 st 表 \(O(1)\) 查询,总复杂度也是 \(O(n^2)\) 所以要想办法减少要枚举的区间,用类似于贪心的思路,只枚举那些更容易使得 区间最大值 < 区间和 的区间 为了使区间最大值不变大,区间和不变小,可以想 阅读全文
posted @ 2022-06-01 12:34 hzy0227 阅读(126) 评论(0) 推荐(1) 编辑
摘要:P3870 [TJOI2009] 开关 TJOI2009] 开关 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 线段树 维护区间和,区间异或 区间异或可视为 区间和 = 区间长度 - 区间和 #include <iostream> #include <cstring> #incl 阅读全文
posted @ 2022-05-25 11:39 hzy0227 阅读(37) 评论(0) 推荐(0) 编辑
摘要:Buy Tickets 线段树 / 树状数组上二分 + 逆向思维 SCUACM2022集训前训练-数据结构 - Virtual Judge (vjudge.net) 、 题意 一开始每个位置都没有人,每次给出一个 \(pos\) 和 \(val\), 把 val 查到第 pos + 1 的位置,求最 阅读全文
posted @ 2022-05-24 21:58 hzy0227 阅读(33) 评论(0) 推荐(0) 编辑
摘要:Apple Tree SCUACM2022集训前训练-数据结构 - Virtual Judge (vjudge.net) dfs序 + 树状数组 注意以后存边时写,效率较高 vector<vector<int> > G(N); #include <iostream> #include <cstrin 阅读全文
posted @ 2022-05-24 20:43 hzy0227 阅读(80) 评论(0) 推荐(0) 编辑
摘要:C - Alice and the Cake 队列/优先队列 记录每个重量的蛋糕个数 求出蛋糕的重量之和,看这个重量能否切出这些蛋糕 把总和放入队列,如果当前这个重量还有蛋糕,那就不切这个,如果没有就继续切 但是这样广搜,很多重量其实是切不出来的,但要一直切到 1 才能判断出来,所以效率很低 因为最 阅读全文
posted @ 2022-05-23 20:43 hzy0227 阅读(20) 评论(0) 推荐(0) 编辑
摘要:树状数组 逆序对 #include <iostream> #include <cstring> #include <algorithm> #define int long long using namespace std; const int N = 5e5 + 10; int tr[N], ran 阅读全文
posted @ 2022-05-16 23:56 hzy0227 阅读(27) 评论(0) 推荐(0) 编辑
摘要:D - Reverse Sort Sum 线段树 / 树状数组 从后往前遍历,如果 c[i] = i, 则说明第 i 个位置上的 1 是从时刻1到 时刻 i 都存在的,所以这一位最开始就是 1,此时若前 i 位有 k 个 1,它们一定在 [i - k + 1, i] 位置上,这个区间 - 1,这是第 阅读全文
posted @ 2022-05-12 21:08 hzy0227 阅读(25) 评论(0) 推荐(0) 编辑