摘要:
"题目链接 BZOJ" "洛谷" 区间第k小,我们可以想到主席树。然而这是静态的,怎么支持修改? 静态的主席树是利用前缀和+差分来求解的,那么对于每个位置上的每棵树看做一个点,拿树状数组更新。 还是树状数组的过程,区间加时,每到一个位置在这棵主席树中插入这个数。 查询时,将所有询问要访问到的主席树存 阅读全文
摘要:
"题目链接" f定义和下面的思路一样,转移时枚举填什么字符,去更新f并算出有哪些字符串可以匹配某个状态(见code吧...)。 预处理出有哪些字符串在第i位可以转移到某个字符c,dp时&一下状态即可。 以下是错误思路(题意理解错,如果是'?'则无论如何都已匹配且要求恰好K个。。): f[i][s]表 阅读全文
摘要:
"题目链接" 题意: 在给定矩形区域内找出最少的数,满足和 =k。输出数的个数。两种数据范围。 0~50 注意到(真没注意到...)P[i,j]=v的个数,val[i][j][v]表示(1,1)~(i,j)值 =v的所有数的和。(不要被什么 =v坑,和二维前缀和一样,只是一个点的初始值为A[i,j] 阅读全文
摘要:
"题目链接" 阅读全文
摘要:
"题目链接" 对于这一区间的操作,我们可以想到差分+前缀和(感觉也没什么别的了。。)。 同时对于本题我们能想到主席树,而主席树正是利用前一个节点建树的。 所以离散化、按时间排序,把操作拆成单点加和减即可。 另外优先级会有重,权值线段树是去重后的,所以要记录sz "" 并根据这个算出k个。 但是对于同 阅读全文
摘要:
"题目链接" 对每次Merge(),Split()时产生的节点都复制一份(其实和主席树一样)。时间空间复杂度都为O(qlogq)。(应该更大些 因为rand()?内存真的爆炸。。) 对于无修改的操作实际上是可以直接赋值的,因为以后也不会去改当前树,只需要查询;修改时自会复制新节点。 虽然操作3.4. 阅读全文