随笔分类 - 树状数组及线段树
摘要:Description Description Input Output Input Input Output Output Sample Input 5 31 1 1 1 15 52 21 3542523 Sample Output 01123 Sample Input 5 31 1 1 1 15
阅读全文
摘要:5571. 【NOI2018模拟3.9】费福斯 (File IO): input:ffs.in output:ffs.out Time Limits: 1000 ms Memory Limits: 524288 KB Detailed Limits Description 费福斯是六兄弟中的老五,他
阅读全文
摘要:我们注意到q很小,每次询问的区间最多被之前的修改划分成O(q)个区间,我们把每个区间放到主席树上查询。
阅读全文
摘要:#include #define N 2000011 #define LL long long #define Mid (l+r>>1) #define Max(a,b) (a>b?a:b) #define Min(a,b) (a g[N],v; int fa[N],ch[N][26],mx[N],mi[N],rt[N],dep[N],vis[N]; void add(){ for (i...
阅读全文
摘要:显然可以持久化并查集。 (我的写法并不好,因为没有路径压缩,其实可以路径压缩。做到O(Nαlog) 。)
阅读全文
摘要:Description Description Konrad, Delfador 和 Kalenz 一行人又喜闻乐见地被追杀了。他们面临的是一条有 N 个地点的路, 他们从 0 号地点出发, 要逃到 N 号地点去。每个地点的战斗都有一定的金币收入 Ai,也有一定的部队损失 Bi。为了更好地逃生, D
阅读全文
摘要:SOL: 我们发现两个有交且不相互覆盖的区间可以互相到达,我们用并查集把这样的区间缩成一个大区间,用线段树维护即可。
阅读全文
摘要:SOL: 我们发现一棵生成树最多99条边,用线段树合并。
阅读全文
摘要:题链 SOL: 我们可以树剖,对dfs序建可持久trie。
阅读全文
摘要:题链 对时间建线段树,当然,你要写中国剩余定理我也是很资瓷。
阅读全文
摘要:SOL: 若d 不相等 那么将权值从大到小排序,把长度为子树大小的一段按子树编号从小到大丢给它们,递归下去得到答案。 d相等的情况下,套个线段树就好了呢。 代码被我吃了。
阅读全文
摘要:SOL: 我们可以先把kmp算出来,那么我们就可以根据kmp建树。 然后我们要求的每个点到根中的小于x(x= id(当前节点的id)/2 )最大的那一个。 主席树啦。 代码?不存在的。才不告诉你我懒得写呢
阅读全文
摘要:SOL: 我们发现每次除操作都会使这个序列趋于相同。我们定义 势能函数 W=序列中的不同数除x次2会趋于相同。 我们发现每次dla操作最多令W 增加log,而一次除操作至少会让W -1, 我们发现Wmax是O(nlogn+qlog )的,而每次让W-1的代价是1 故复杂度是小于O(nlogn )的。
阅读全文
摘要:题链 SOL: 我们可以搞事情。按位枚。 对每一位统计有几对前缀和之差在此位上为1. 讨论一下就出来了。
阅读全文
摘要:SOL: 我们发现答案就是 跑一边KMP 那么答案就是i-net[i], 我们考虑在trie上跑KMP,我们发现KMP的复杂度是依赖摊还分析的线性复杂度。如果朴素的KMP做法时间复杂度是不对的。 比如这样一个trie: a | a | a / \ b b 复杂度就退化了。那么我们可以考虑对每一个节点
阅读全文
摘要:题目描述 (4s,1G)从小热爱计算机的Zbox开始玩栈了.Zbox有n个栈,他命令你支持如下操作:*.把第l个栈到第r个栈都压入一个元素x*.把第l个栈到第r个栈都弹出栈顶(若栈为空则无视)*.询问第s个栈的第k个元素是多少(栈顶为第一个元素)输入描述第一行2个数n,q接下来q行,每行第一个数为t
阅读全文