04 2023 档案
区间不同数的个数 二维数点(离线) 扫描线(离线) 可持久化线段树(在线)
摘要:[SDOI2009] HH的项链 按时间先后顺序对应:二维数点(离线) 扫描线(离线) 可持久化线段树(在线) 写的比较粗糙,偏主观理解 二维数点,对于询问的$[l, r]$区间我们只需要统计有多少个数上一次出现的位置$pos$ 满足$pos \leq l$,即可。 template<class T
阅读全文
可持久化线段树模板 区间第k小数,区间前k大数之和
摘要:第K小数 // AC one more times #include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define endl '\n' #def
阅读全文
权值线段树模板
摘要:【模板】普通平衡树 // AC one more times #include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define endl '\n'
阅读全文
线段树的动态开点模板
摘要:学习自 数据结构学习笔记(5)动态开点线段树 动态开点线段树 感谢大佬们博客的帮助 // AC one more times #include <bits/stdc++.h> using namespace std; #define fi first #define se second #defin
阅读全文
D. Solve The Maze
摘要:D. Solve The Maze 大意:建墙让所有好人可以到达坐标$(n,m)$,任何一个坏人都不能到达坐标$(n,m)$ 分析: 把坏人直接关起来,在坏人的四面建墙, 统计好人的人数 从坐标$(n,m)$去遍历,整个地图,看能不能遇到所有好人 3可以通过dsu, flood-fill等去做吧 细
阅读全文
D. Non-zero Segments
摘要:D. Non-zero Segments 过程:手玩样例发现,前缀和中出现相同值即为区间和为0 由前缀和公式$S_i = S_{i - 1} + A_i$可以知道,区间$[l,r]$满足题意即为$S_r = S_{l-1}$,对于每个这样的区间插入个巨大的数,让区间$[1, r-1]$的前缀和都作废
阅读全文
湖南省第十八届大学生计算机程序设计竞赛(HNCPC2022)VP记录
摘要:随便记录下 湖南省第十八届大学生计算机程序设计竞赛(HNCPC2022) 官方题解 VP情况 队友卡I占了机时导致罚时有点爆炸,也是策略的失误 6题837罚时 补到GH就不补个位数题 J 判断斐波那契区间有没有一段的和等于$n$ 由于$n \leq 10^{15}$直接暴力即可 #include<b
阅读全文
[USACO12MAR]Flowerpot S 单调队列
摘要:[USACO12MAR]Flowerpot S tag:单调队列 很惭愧,今天发现自己连滑动窗口都不会了,遂做了一些题 两滴水的高度之差大于等于D的情况下的最小花盆宽度 暴力思路:对于任意两点求水滴高度差是否大于等于D,若大于等于$D$则计算最下的两点距离 $w$ 但这显然是能过但不完全过,手玩一下
阅读全文
B. Plus and Multiply
摘要:B. Plus and Multiply 手模拟了一下 观察每个式子,化简得到: $a^x + by = n $ 由于$a^x$是指数增长,直接枚举它的幂次即可,注意对$a=1$的情况特判 // AC one more times #include <bits/stdc++.h> using nam
阅读全文
B. Phoenix and Beauty
摘要:B. Phoenix and Beauty 要求所有长度为$k$的子数组之和相同,观察样例可以发现,当原数组中不同的元素个数小于等于$k$时可以满足条件,同时输出的数组长度$m$很大,可以从这里入手 构造一个有所有元素的数组,当这个数组长度不足时,补其他元素进去,答案即为 $\frac{10000}
阅读全文
New Year Tree
摘要:New Year Tree 线段树,打标记,位运算 操作1,区间赋值,很容易的线段树操作 对于询问以$u$为根的子树上的所有节点的颜色数量,一开始我在线段树里开了一个大小61的数组,喜提MLE,但后续观察发现,$1 << 60 \leq \text{longlong}$,所以我们设每种颜色$ c_i
阅读全文
TorCoder
摘要:TorCoder 26棵线段树 建树,对于每个字符在响应字母的位置上进行修改数量 对于$[l,r]$的重排,对26个字母进行区间查询出现的数量,判断是否可以组成,如果可以组成,将$[l,r]$出现过字母的区间[l,r]赋值为0,然后根据字典序顺序对进行区间赋值操作 $m$次操作后,对每个位置查询是哪
阅读全文
[NOI Online #1 提高组] 冒泡排序
摘要:[NOI Online #1 提高组] 冒泡排序 树状数组or线段树维护逆序对 手推样例得到两个结论: 操作1会使逆序对发生$\pm 1$的变化 操作2,每一轮冒泡排序,会使所有逆序对 $ \geq 1$ 的数组的逆序对$ -1 $ 对于操作1,只需要算一下交换的两个数的大小,对总的逆序对的变化即可
阅读全文
[USACO08FEB]Hotel G
摘要:[USACO08FEB]Hotel G 线段树二分,最大字段和 对于操作二,是很简单的区间赋值 对于操作一,长度为$len$的,我们要找到最小的的 $x$ 满足 $[x, x + len -1]$ 的房间为空 在最大字段和的基础上,我们可以求出最长连续空房间的长度,对于要求长度为$len$的房间,可
阅读全文
[SCOI2010] 序列操作
摘要:[SCOI2010] 序列操作 在dls的数据结构中级课那学了最大字段和的线段树写法,对于这道题,我们要维护的信息有: 区间左边0/1的个数, 区间右边0/1的个数 区间最长0/1的长度 区间的赋值标记 区间的取反标记 整个区间的长度 对于 1 ~ 4 是很基本的最大字段和操作 对于 两种不同的标记
阅读全文
浙公网安备 33010602011771号