摘要: 题意:求一个动态区间的最大连续和。静态版本的O(n)算法显示不适用了,但是可以用线段树分治,因为一个连续和要在两边的区间,要么跨越两边,对于一个结点维护最大前缀和,后缀和,子区间连续和。题目要求输出区间,所以还要保存连续和最大的区间,以及前缀和,后缀和的位置。为了维护最大前缀和以及后缀和还需要一个区... 阅读全文
posted @ 2015-09-08 18:05 陈瑞宇 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 询问静态区间最值的Sparse—Table(Tarjan提出)的算法。这个算法的思想是一个dp,dp[i][j]表示i开头长度为2^j的区间内的最值,然后倍增转移。这道题询问的是出现次数,相同的数字是连续出现的,先把连续出现的数字按段编号,记录出现的次数。因为题目询问给的是原来的数字的下标,记录一下... 阅读全文
posted @ 2015-09-08 17:49 陈瑞宇 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 枚举中间的人,只要知道在这个人前面的技能值比他小的人数和后面技能值比他小的人数就能计算方案数了,技能值大的可有小的推出。因此可以利用树状数组,从左到右往树上插点,每个点询问sum(a[i]-1)就是前面的技能值比它小的人数,然后再从右边往左重复一遍就可以算出答案。#includeusing name... 阅读全文
posted @ 2015-09-08 17:17 陈瑞宇 阅读(172) 评论(0) 推荐(0) 编辑