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