上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 19 下一页
摘要: "题目链接 $Click$ $Here$" 线段树合并,没想到学起来意外的很简单,一般合并权值线段树。 建树方法和主席树一致,即动态开点。合并方法类似于$FHQ$的合并,就是把两棵树的信息整合到一个里面。暂时没写过定义域不同的线段树合并,具体方法也想象不出来,写到了再详细讲吧。 算法复杂度:均摊$O 阅读全文
posted @ 2019-03-18 21:00 maomao9173 阅读(112) 评论(0) 推荐(0) 编辑
摘要: "题目链接 $Click$ $Here$" $Kruskal$重构树的好题。想到的话就很好写,想不到乱搞的难度反而相当高。 按照点的水位,建出来满足小根队性质的$Kruskal$重构树,这样一个点的子树里的点就是所有可以开车到达的点。做一遍最短路预处理,然后树上求一个子树$min$,就可以得到子树里 阅读全文
posted @ 2019-03-18 17:30 maomao9173 阅读(98) 评论(0) 推荐(0) 编辑
摘要: "题目链接 $Click$ $Here$" 假的主席树。。。实际上就是树链剖分维护十万棵动态开点的线段树,写起来和主席树比较相似。 真的是不能思维僵化啊,写题的时候一定要保证思考方向灵活$+$正确。 cpp include using namespace std; const int N = 100 阅读全文
posted @ 2019-03-18 16:03 maomao9173 阅读(264) 评论(0) 推荐(0) 编辑
摘要: "题目链接 $Click$ $Here$" 差分主席树,就是把主席树做成一个差分前缀和的形式,还是很容易想到的。 写主席树的时候几个注意点: 查询可能开始于所有任务之前,二分任务点要把左边界设置为$0$ 记得开$longlong$ 主席树通用细节:查询结束后的边界可能有残余答案未统计。即一个权值里的 阅读全文
posted @ 2019-03-18 09:50 maomao9173 阅读(121) 评论(0) 推荐(0) 编辑
摘要: "题目链接 $Click$ $Here$" 做法:$Kruskal$重构树上跑主席树 构造方法:把每条边拆出来成一个点,点权是原先的边权。每次连边的时候,连的不再是点,而是其原先点所在的联通块。 $Kruskal$重构树的性质: 二叉树 如果按最小生成树构造,则自顶到底权值递增(堆) 叶节点是原先的 阅读全文
posted @ 2019-03-17 20:50 maomao9173 阅读(101) 评论(0) 推荐(0) 编辑
摘要: "题目链接 $Click$ $Here$" 树上建主席树,方法和序列上相差不多。就是被最大值卡$RE$好几次。。。 cpp include using namespace std; const int N = 100010; define int long long int n, m, cnt, v 阅读全文
posted @ 2019-03-15 19:02 maomao9173 阅读(100) 评论(0) 推荐(0) 编辑
摘要: "题目链接 $Click$ $Here$" 注意坑点:一个地方可以有多把钥匙。 被卡了一会,调出来发现忘了取出来实际的数字,直接把二进制位或上去了$TwT$,其他的就是套路的分层图最短路。不算太难。 cpp include using namespace std; int n, m, p, k, s 阅读全文
posted @ 2019-03-15 16:26 maomao9173 阅读(119) 评论(0) 推荐(0) 编辑
摘要: "题目链接 $Click$ $Here$" 这个题有点卡常数。。我的常数比较大所以是吸着氧气跑过去的。。。 题意:计算对于序列中每个位置$p$,$[1,p 1]$区间内比它大的数的个数,和$[p + 1, N]$区间内比它小的数的个数和,要求支持修改操作,带修主席树可以解决。 通过主席树来维护权值状 阅读全文
posted @ 2019-03-15 10:46 maomao9173 阅读(140) 评论(0) 推荐(0) 编辑
摘要: "题目链接 $Click$ $Here$" 分层图。。好长时间没写差点要忘了$hhhhh$,其实思路还是很明了的。 注意需要强制消费。 cpp include using namespace std; const int N = 110010; const int M = 550010; defin 阅读全文
posted @ 2019-03-15 09:15 maomao9173 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 带修主席树的模板,因为状态不好所以敲了很长时间,不过写完感觉能更好地理解主席树了。 核心其实就是树状数组套主席树,维护方法不再是以前的那种一步一修改,而是对于树状数组上的每一个点建立一棵权值线段树,然后一点一点地维护。这样就从朴素修改后缀所需要的每次$O(NlogN)$的复杂度,变成了修改$log$ 阅读全文
posted @ 2019-03-14 21:29 maomao9173 阅读(131) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 19 下一页