ST表
samjia2000
I swear...
We are INFINITE.
展开
-
[SCOI2016]萌萌哒
题目描述一个长度为n的大数,用S1S2S3…Sn表示,其中Si表示数的第i位,S1是数的最高位,告诉你一些限制条件,每个条件表示为四个数,l1,r1,l2,r2,即两个长度相同的区间,表示子串Sl1Sl1+1Sl1+2…Sr1与Sl2Sl2+1Sl2+2…Sr2完全相同。比如n=6时,某限制条件l1=1,r1=3,l2=4,r2=6,那么123123,351351均满足条件,但是12012,13原创 2016-05-17 12:50:12 · 1104 阅读 · 0 评论 -
GDOI2016回文树
嗯,今年GD出题人和SC出题人都偶然的出了同一个算法的题啊。精简的题目描述有一棵树,每个点有一个小写字母,树上有些路径是回文串,求这样的树有多少棵。将【SCOI2016萌萌哒】的模型放到树上。 给ST表每个块两个标号,分别表示正和反。 处理一个回文串的状态,首先将一条路径的两端先处理。 然后处理剩下的一条只有祖先的路,一开始我是用直观的方法,log^2合并的,后来发现很慢,就改成先将该路径分成原创 2016-05-20 20:28:16 · 495 阅读 · 0 评论 -
【NOI2010】超级钢琴
题目大意给出一个长度为n的序列,求所有长度在L到R之间的连续子序列的权值和的前k大的和解法首先将以每个点为开头的长度在L到R之间的序列的权值和最大的区间扔进堆里,每次拿出堆顶,然后再放入以当前点为开头的次大,如此类推,就可解决该问题了。 那么如何维护k大,下面介绍几种方法: 1、可持续化treap,每次移动一个点,相当于是一个框在移动,即加入一个,删除一个,每次直接查找就好了 2、可持续化线段原创 2016-07-14 11:45:44 · 922 阅读 · 0 评论 -
SCOI2016幸运数字
题目大意有一棵有n个节点的树,每个节点有一个权值,有若干组询问,每组询问询问x到y的路径上的点中选出一些点的点权来抑或,求最大的值。线性基(属个人理解,如有误,请指出 对于一个集合SS,它的线性基S‘S^`的意义为:集合S‘S^`中的若干元素的抑或和得到的集合与SS中的若干元素的抑或和得到的集合完全相同。ST表+暴力合并线性基(如有不懂,详情见标程 由于线性基的特殊性质,我们可以直接从大到小抑或原创 2016-07-15 16:51:34 · 699 阅读 · 0 评论