摘要: 题意 给定一个$1$为根的树,每个点有$c,w$两个属性,你需要从某个点$u$子树里选择$k$个点,满足选出来的点$\sum_{i=1}^k w(i)\leq m$,最大化$k\times c(u)$ 题解 可以启发式合并$splay$来做,$\text{dfs}$每个点,每次和儿子的$splay$ 阅读全文
posted @ 2019-02-14 21:31 hfhongzy 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 题意 你需要维护若干连通快,有两个操作 合并$x,y$所在的连通块 询问$x$所在连通块中权值从小到大排第$k$的结点编号 题解 可以启发式合并$splay$,感觉比较好些的 一个连通块就是一个$splay$,每次合并挑小的$splay$遍历一遍把点按中序遍历存下来,然后一个一个插入大的$splay 阅读全文
posted @ 2019-02-14 16:51 hfhongzy 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 题意 你有一个森林,你需要支持两个操作 查询两个结点路径上权值第$k$小 两个点之间连一条边 强制在线,结点数$\leq 8\times 10^4$ 题解 如果可以离线,这就是一个主席树板子题,每个点开一个主席树表示树上的前缀和。询问的时候拿出来$4$棵主席树,$x,y,lca(x,y)$和$fa( 阅读全文
posted @ 2019-02-14 14:33 hfhongzy 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题意 记$s_R$为$s$翻转后的串,求一个串最长的形如$ss_Rss_R$的子串长度 题解 这有一个复杂度明显$O(n)$的做法,思路来自网上某篇博客 一个双倍回文串肯定当且仅当本身是一个回文串且左右两边都是回文串 所以对于右边的回文串,到它中心$i$的时候,$manacher$记录的$maxr$ 阅读全文
posted @ 2019-02-14 09:17 hfhongzy 阅读(171) 评论(0) 推荐(0) 编辑