摘要: lct模板题。 #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N=10005; int fa[N],ch[N][2]; bool rev[N]; bool ck(int 阅读全文
posted @ 2018-09-25 23:50 SWHsz 阅读(136) 评论(0) 推荐(0) 编辑
摘要: k叉哈夫曼树。 需要保证权值尽量小的前提下深度最小。 我们可以把k个节点合并成一个节点,最后合成一个。 所以如果n-1不是k-1的倍数,就补起来。最后就是先取k个最小的,用一个假的节点连起来,然后把这k个东西当成一个新的节点,节点的权值是k个点的权值和。 #include <iostream> #i 阅读全文
posted @ 2018-09-25 15:39 SWHsz 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 陈年老题。。。 我就$%^&。。。 码了4k多。。。 主要就是用splay,然后处理区间上的东西 区间反转就和模板一样,但是要记得反转leftmax和rightmax 区间赋值就把那个区间提取出来,然后给子树根打个same标记,表示下面的全一样。 区间求最大子段和就和线段树的套路一样。 区间插入就先 阅读全文
posted @ 2018-09-25 00:33 SWHsz 阅读(148) 评论(0) 推荐(0) 编辑