Diorvh

导航

2019年12月13日 #

【日记】12.12

摘要: 12.12日记 CF 1. 1234D:https://codeforces.com/problemset/problem/1234/D 其实直接对每个字母建一个树状数组,建26个即可。每次询问区间和,如果不为0,说明有这个字母,答案+1。时间复杂度$O(26n\log n)$ 明日计划 1. 树直 阅读全文

posted @ 2019-12-13 00:23 diorvh 阅读(78) 评论(0) 推荐(0) 编辑

2019年12月12日 #

【日记】12.11

摘要: 12.11日记 CF数据结构 1. 1252C:https://codeforces.com/problemset/problem/1252/C 思路 :偶数=偶+偶=奇+奇,而且,只有可能连续的偶对应偶,或者连续的奇对应奇,构成一个联通的长方形。所以预处理R,C每个值前面第一个与其奇偶性相反的数的 阅读全文

posted @ 2019-12-12 01:33 diorvh 阅读(177) 评论(0) 推荐(0) 编辑

2019年12月11日 #

【日记】12.10

摘要: 12.10日记 主席树 1. P2617(带修主席树模板):给定n个数的序列,查询区间第k小+单点修改。本题非强制在线。 思路 :其实主席树也只是一种复用重复空间的思想,并不是一种特定的数据结构。相反,他和动态开点有不少相似之处。甚至说,普通的线段树就是一种特殊的抽象化线段树。我感觉做了这么多线段树 阅读全文

posted @ 2019-12-11 01:24 diorvh 阅读(123) 评论(0) 推荐(0) 编辑

2019年12月10日 #

【日记】12.9

摘要: 12.9日记 对顶堆 功能 :动态维护区间第k大,支持插入和删除。小根堆储存大数,大根堆储存小数。 1. P1801:插入+输出第k大。 C++ include using namespace std; define mid ((l+r) 1) const int M=5e5+20; int cnt 阅读全文

posted @ 2019-12-10 01:20 diorvh 阅读(134) 评论(0) 推荐(0) 编辑

2019年12月9日 #

【日记】12.7

摘要: 12.7日记 线段树 1. POJ3667:区间修改+询问最靠左的长度为x的连续区间。 思路和上个题差不多,只不过这里是区间修改,所以只能用线段树了。这里注意如果是直接修改值的话,lazy标记的初始值必须是 1,因为可以改成0。出了点小错误,以后写代码还是要仔细。 阅读全文

posted @ 2019-12-09 01:50 diorvh 阅读(153) 评论(0) 推荐(0) 编辑

【日记】12.8

摘要: 12.8日记 扫描线 1. P5490:矩形面积并。 思路 :看了一天才勉强看懂。首先离散化,线段树上每个节点表示一段区间。每次修改矩形的扫描线时,可以证明一定可以将其拆分成logn个区间,所以复杂度是对的。cnt记录这个区间被覆盖了几次。len记录这个区间至少被覆盖了一次的长度。这样每次加面积就是 阅读全文

posted @ 2019-12-09 01:49 diorvh 阅读(93) 评论(0) 推荐(0) 编辑

2019年12月7日 #

【日记】12.6

摘要: 12.6日记 线段树 1. HDU1540:单点修改+单点所在最长连续区间 思路 :昨天用了set(平衡树)做的,发现简单的一批,还是学了一下线段树的做法。不过学完了之后发现,确实用线段树还是很有必要的,如果是区间修改的话,平衡树就挂了,就只能用线段树来处理了。更何况还有可能有区间所在最长连续区间之 阅读全文

posted @ 2019-12-07 12:48 diorvh 阅读(203) 评论(0) 推荐(0) 编辑

2019年12月6日 #

【日记】 12.5

摘要: 12.5日记 线段树 1. OpenJ2528:画板长度1 10000000,依次贴了n using namespace std; define mid (l+r)/2 const int M=1e5+20; int v[M 4],l[M],r[M]; vector a; unordered_map 阅读全文

posted @ 2019-12-06 09:35 diorvh 阅读(121) 评论(0) 推荐(0) 编辑

2019年12月5日 #

【日记】12.4

摘要: 12.4日记 CDQ分治 1. HDU1541:给定一些(a,b),定义(a,b)的等级为满足(a2 define mid (l+r)/2 using namespace std; const int M=1e5+20; int v[4 M][4],lazy[4 M][4],P=1e4+7; inl 阅读全文

posted @ 2019-12-05 00:58 diorvh 阅读(127) 评论(0) 推荐(0) 编辑

2019年12月4日 #

【日记】12.3

摘要: 12.3日记 线段树 染色问题困扰好久…… 1. 洛谷P2161。安排约定问题。 思路 :这道题其实应该是用平衡树的。不过如果涉及到平衡树,那么就考虑能不能直接套用set。既然有 只保留一个 的特性,那么就可以利用set只保留一个的特性,让冲突的设计重载运算符 st; C++ //插入区间并删除冲突 阅读全文

posted @ 2019-12-04 01:47 diorvh 阅读(215) 评论(0) 推荐(0) 编辑