随笔分类 -  线段树

摘要:4408: [Fjoi 2016]神秘数 Description 一个可重复数字集合S的神秘数定义为最小的不能被S的子集的和表示的正整数。例如S={1,1,1,4,13},1 = 12 = 1+13 = 1+1+14 = 45 = 4+16 = 4+1+17 = 4+1+1+18无法表示为集合S的子 阅读全文
posted @ 2017-04-19 11:13 Splay 阅读(356) 评论(0) 推荐(0)
摘要:3653: 谈笑风生 Description 设T 为一棵有根树,我们做如下的定义:• 设a和b为T 中的两个不同节点。如果a是b的祖先,那么称“a比b不知道高明到哪里去了”。• 设a 和 b 为 T 中的两个不同节点。如果 a 与 b 在树上的距离不超过某个给定常数x,那么称“a 与b 谈笑风生” 阅读全文
posted @ 2017-03-21 16:06 Splay 阅读(291) 评论(0) 推荐(0)
摘要:题意 支持删除矩阵、插入矩阵、查询当前矩阵与之前有多少个矩阵相交 算相交的时候容斥一下:相交矩形数 = 总矩形数-X轴投影不相交的矩形数-Y轴投影不相交的矩形数-XY轴投影下都不相交的矩形数 最后一项cdq分治解决 不是我的程序 >http://wyfcyx.is-programmer.com/po 阅读全文
posted @ 2017-02-15 21:20 Splay 阅读(276) 评论(0) 推荐(0)
摘要:题意 上下有两个位置分别对应的序列A、B,长度为n,两序列为n的一个排列。当Ai == Bj时,上下会连一条边。你可以选择序列A或者序列B进行旋转任意K步,如 3 4 1 5 2 旋转两步为 5 2 3 4 1。求旋转后最小的相交的线段的对数。 很暴力的就做了这一题,当选择A进行旋转时,A序列翻倍, 阅读全文
posted @ 2017-02-15 21:13 Splay 阅读(717) 评论(0) 推荐(0)
摘要:题目大意:有一个序列,包含多次询问。询问区间左右端点在规定区间里移动所得到的最大中位数的值。 考虑对于每个询问,如何得到最优区间?枚举显然是超时的,只能考虑二分。 中位数的定义是在一个序列中,比中位数小的数跟比它大的数一样多,由于我们要求的是最大的中位数,自然希望能找到一个区间,使得该区间内比该中位 阅读全文
posted @ 2017-02-13 19:13 Splay 阅读(393) 评论(0) 推荐(0)
摘要:这题是裸的主席树,每个节点建一棵主席树,再加个lca就可以了。 历尽艰辛,终于A掉了这一题,这般艰辛也显示出了打代码的不熟练。 错误:1、lca倍增的时候i和j写反了,RE了5次,实在要吸取教训 2、主席树插入操作的时候,如果插入到的那个点(叶节点)原来有值,而没有加上,导致了WA 以下是历尽艰辛的 阅读全文
posted @ 2017-02-10 21:06 Splay 阅读(316) 评论(0) 推荐(0)
摘要:如果按一般的思路来想,去求窗户能框住的星星,就很难想出来。 如果换一个思路,找出每颗星星能被哪些窗户框住,这题就变得非常简单了。 不妨以每个窗户的中心代表每个窗户,那么每颗星星所对应的窗户的范围即以其为中心的、W*H的矩形。把这些矩形的左边和右边,分别加上和减去其价值。而统计这些边只需要开一个线段树 阅读全文
posted @ 2017-02-08 20:58 Splay 阅读(312) 评论(0) 推荐(0)