摘要: Tarjan,二分图,网络流 阅读全文
posted @ 2019-06-17 15:27 hfhongzy 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 题意 你有$n$个物品,物品和硬币有$A$,$B$两种类型,假设你有$M$个$A$物品和$N$个$B$物品 每一轮你可以选择获得$A, B$硬币各$1$个,或者(硬币足够)花$\max(a_i M, 0)$个$A$,$\max(b_i N, 0)$个$B$买$i$这个物品 问买到所有物品最少要多少轮 阅读全文
posted @ 2019-06-16 22:32 hfhongzy 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 题意 一个$r\times c$的棋盘,棋盘上有$n$个标记点,每个点有三种类型,类型$1$可以传送到本行任意标记点,类型$2$可以传送到本列任意标记点,类型$3$可以传送到周围八连通任意标记点。求最长路径。 $r,c\leq 10^6,n\leq 10^5$ 题解 这题做法很多,我就把每一行的所有 阅读全文
posted @ 2019-03-30 11:51 hfhongzy 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 题意 给定一个$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) 编辑
摘要: 题意 求$\gcd(a, b)$,其中$a,b\leq10^{10000}$ 题解 使用$\text{Stein}$算法,其原理是不断筛除因子$2$然后使用更相减损法 如果不筛$2$因子的话复杂度是线性的,比如$a=1,b=10^{10000}$ 再证明下更相减损术,即$\gcd(a,b)=gcd( 阅读全文
posted @ 2019-02-13 21:05 hfhongzy 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 题意 求$\sum_{i=1}^n i^k$,$n \leq 10^9,k \leq 10^6$ 题解 观察可得答案是一个$k+1$次多项式,我们找$k+2$个值带进去然后拉格朗日插值 $n+1$组点值$(x_i,y_i)$,得到$n$次多项式$f$的拉格朗日插值方法: $$f(x) = \sum_ 阅读全文
posted @ 2019-02-13 19:52 hfhongzy 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 题意 有一个打字机,支持三种操作: 字符串末尾加一个小写字母 字符串末尾减一个字符 输出这个字符串 经过不超过$n$次操作后有$m$组询问:$(x,y)$,表示第$x$次输出第字符串在第$y$次输出第字符串里出现几次 $n,m \leq 10^5$ 题解 每次加减字符就在trie树上走,输出的话记录 阅读全文
posted @ 2019-02-13 16:59 hfhongzy 阅读(147) 评论(0) 推荐(0) 编辑