• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
magicat
博客园    首页    新随笔    联系   管理    订阅  订阅
04 2023 档案
区间不同数的个数 二维数点(离线) 扫描线(离线) 可持久化线段树(在线)

摘要:[SDOI2009] HH的项链 按时间先后顺序对应:二维数点(离线) 扫描线(离线) 可持久化线段树(在线) 写的比较粗糙,偏主观理解 二维数点,对于询问的$[l, r]$区间我们只需要统计有多少个数上一次出现的位置$pos$ 满足$pos \leq l$,即可。 template<class T 阅读全文
posted @ 2023-04-30 11:08 magicat 阅读(97) 评论(0) 推荐(0)
可持久化线段树模板 区间第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 阅读全文
posted @ 2023-04-30 01:09 magicat 阅读(40) 评论(0) 推荐(0)
权值线段树模板

摘要:【模板】普通平衡树 // AC one more times #include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define endl '\n' 阅读全文
posted @ 2023-04-27 22:26 magicat 阅读(50) 评论(4) 推荐(0)
线段树的动态开点模板

摘要:学习自 数据结构学习笔记(5)动态开点线段树 动态开点线段树 感谢大佬们博客的帮助 // AC one more times #include <bits/stdc++.h> using namespace std; #define fi first #define se second #defin 阅读全文
posted @ 2023-04-27 18:00 magicat 阅读(48) 评论(0) 推荐(0)
D. Solve The Maze

摘要:D. Solve The Maze 大意:建墙让所有好人可以到达坐标$(n,m)$,任何一个坏人都不能到达坐标$(n,m)$ 分析: 把坏人直接关起来,在坏人的四面建墙, 统计好人的人数 从坐标$(n,m)$去遍历,整个地图,看能不能遇到所有好人 3可以通过dsu, flood-fill等去做吧 细 阅读全文
posted @ 2023-04-21 16:59 magicat 阅读(46) 评论(0) 推荐(0)
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]$的前缀和都作废 阅读全文
posted @ 2023-04-21 16:30 magicat 阅读(32) 评论(0) 推荐(0)
湖南省第十八届大学生计算机程序设计竞赛(HNCPC2022)VP记录

摘要:随便记录下 湖南省第十八届大学生计算机程序设计竞赛(HNCPC2022) 官方题解 VP情况 队友卡I占了机时导致罚时有点爆炸,也是策略的失误 6题837罚时 补到GH就不补个位数题 J 判断斐波那契区间有没有一段的和等于$n$ 由于$n \leq 10^{15}$直接暴力即可 #include<b 阅读全文
posted @ 2023-04-17 11:35 magicat 阅读(1506) 评论(0) 推荐(0)
[USACO12MAR]Flowerpot S 单调队列

摘要:[USACO12MAR]Flowerpot S tag:单调队列 很惭愧,今天发现自己连滑动窗口都不会了,遂做了一些题 两滴水的高度之差大于等于D的情况下的最小花盆宽度 暴力思路:对于任意两点求水滴高度差是否大于等于D,若大于等于$D$则计算最下的两点距离 $w$ 但这显然是能过但不完全过,手玩一下 阅读全文
posted @ 2023-04-13 21:23 magicat 阅读(71) 评论(0) 推荐(0)
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 阅读全文
posted @ 2023-04-09 22:29 magicat 阅读(52) 评论(0) 推荐(0)
B. Phoenix and Beauty

摘要:B. Phoenix and Beauty 要求所有长度为$k$的子数组之和相同,观察样例可以发现,当原数组中不同的元素个数小于等于$k$时可以满足条件,同时输出的数组长度$m$很大,可以从这里入手 构造一个有所有元素的数组,当这个数组长度不足时,补其他元素进去,答案即为 $\frac{10000} 阅读全文
posted @ 2023-04-09 21:59 magicat 阅读(21) 评论(0) 推荐(0)
New Year Tree

摘要:New Year Tree 线段树,打标记,位运算 操作1,区间赋值,很容易的线段树操作 对于询问以$u$为根的子树上的所有节点的颜色数量,一开始我在线段树里开了一个大小61的数组,喜提MLE,但后续观察发现,$1 << 60 \leq \text{longlong}$,所以我们设每种颜色$ c_i 阅读全文
posted @ 2023-04-03 11:37 magicat 阅读(25) 评论(0) 推荐(0)
TorCoder

摘要:TorCoder 26棵线段树 建树,对于每个字符在响应字母的位置上进行修改数量 对于$[l,r]$的重排,对26个字母进行区间查询出现的数量,判断是否可以组成,如果可以组成,将$[l,r]$出现过字母的区间[l,r]赋值为0,然后根据字典序顺序对进行区间赋值操作 $m$次操作后,对每个位置查询是哪 阅读全文
posted @ 2023-04-03 11:24 magicat 阅读(62) 评论(0) 推荐(0)
[NOI Online #1 提高组] 冒泡排序

摘要:[NOI Online #1 提高组] 冒泡排序 树状数组or线段树维护逆序对 手推样例得到两个结论: 操作1会使逆序对发生$\pm 1$的变化 操作2,每一轮冒泡排序,会使所有逆序对 $ \geq 1$ 的数组的逆序对$ -1 $ 对于操作1,只需要算一下交换的两个数的大小,对总的逆序对的变化即可 阅读全文
posted @ 2023-04-03 11:11 magicat 阅读(61) 评论(0) 推荐(0)
[USACO08FEB]Hotel G

摘要:[USACO08FEB]Hotel G 线段树二分,最大字段和 对于操作二,是很简单的区间赋值 对于操作一,长度为$len$的,我们要找到最小的的 $x$ 满足 $[x, x + len -1]$ 的房间为空 在最大字段和的基础上,我们可以求出最长连续空房间的长度,对于要求长度为$len$的房间,可 阅读全文
posted @ 2023-04-03 10:56 magicat 阅读(69) 评论(0) 推荐(0)
[SCOI2010] 序列操作

摘要:[SCOI2010] 序列操作 在dls的数据结构中级课那学了最大字段和的线段树写法,对于这道题,我们要维护的信息有: 区间左边0/1的个数, 区间右边0/1的个数 区间最长0/1的长度 区间的赋值标记 区间的取反标记 整个区间的长度 对于 1 ~ 4 是很基本的最大字段和操作 对于 两种不同的标记 阅读全文
posted @ 2023-04-03 10:40 magicat 阅读(34) 评论(0) 推荐(0)

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3