随笔分类 -  数据结构之树套树

摘要:题意:给串s和t,对于串s每个位置有一个价值f,两种操作1.修改f[a]=b,2.查询串t子串Ta b在s的子串Sc d中出现位置的f和 题解:s和t建sam,把fail树按dfs序建bit套线段树,就变成了单点修改,子树(区间)查询区间个数 阅读全文
posted @ 2019-04-25 13:44 walfy 阅读(191) 评论(0) 推荐(0) 编辑
摘要:题意:带修改的区间第k大 题解:树状数组套主席树,开n个主席树,用树状数组维护,先离散化,然后动态开点按权值插入到树状数组访问到的节点,然后修改也是同样的修改,查询需要在主席树上二分,同时维护树状数组所访问的那些节点,在主席树上跑即可 // pragma GCC optimize(2) // pra 阅读全文
posted @ 2018-12-20 21:58 walfy 阅读(146) 评论(0) 推荐(0) 编辑
摘要:题意:给两个排列,2种操作1,查询两个区间a和b一样的值个数,2,交换b的两个值 题解:树套树,先把a变成1到n的排列,对b做相同的变换,然后问题就变成了查询区间lb,rb中la到ra的个数,带修改可以树状数组套主席树,需要内存回收 // pragma GCC optimize(2) // prag 阅读全文
posted @ 2018-12-20 21:50 walfy 阅读(178) 评论(0) 推荐(0) 编辑
摘要:题意:给你一个矩阵,q次操作,每次查询长宽l的矩阵最大值a和最小值b,然后把中间点换成floor((a+b)/2), 解法:暴力可过,建n颗线段树暴力更新,但是正解应该是树套树,树套树需要注意的是当建树或修改时pushup操作不能直接搞,要先判断是不是外面层的叶子节点,如果是直接修改,如果不是,应该 阅读全文
posted @ 2018-05-06 00:50 walfy 阅读(192) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示