
倍增
文章平均质量分 59
AbEver
孤单是一个人的狂欢
展开
-
洛谷 P1081 [NOIP提高组 2012] 开车旅行(线段树+离散化+树上倍增)
洛谷 P1081 [NOIP提高组 2012] 开车旅行 线段树 离散化 树上倍增原创 2017-09-29 17:55:29 · 643 阅读 · 0 评论 -
洛谷 P2597 [ZJOI2012]灾难(拓扑排序+建树+动态LCA+树上前缀和)
前言(传送门)这是一道神奇的生物题,我和同桌讨论了一节课,然后想到了一些和正解接近的东西,但还是没想到具体的做法。在看完题解后,感觉这题并不难,但是有点神奇。题解首先,食物网是个DAG,我们将食物连向捕食者,并建立虚点表示太阳,并连向所有的生产者。此时基图连通。拓扑排序,我们想知道生物x的灾难值,但我们是从食物开始做的,所以考虑哪些生物死了会导致x死掉。一种生物的死亡必然是其所...原创 2018-03-07 17:51:09 · 400 阅读 · 0 评论 -
bzoj 3881: [Coci2015]Divljak(AC自动机+fail树+dfs序+lca+bit)
题目描述权限门题目大意:给一个字符串集合S、一堆操作。操作1就是在在另一个集合T中加入一个串P,操作2就是问你S中第x个串是T中多少个串的子串。|S|,q<=1e5,S中串总长度L1和T中串的总长度L2分别<=2e6。题解考虑把S集合里的串那去建AC自动机,然后每次读入一个P,它的贡献就是从它在树上能匹配到的节点,沿着fail指针一直往上跳能走到的所有点。于是直接对S集合的串建出fail树,然后每个原创 2018-03-22 16:13:38 · 485 阅读 · 0 评论 -
BZOJ 2006: [NOI2010]超级钢琴(ST表+优先队列)
题目描述传送门题目描述:给你一个长度为N的序列(N<=500,000),求长度在[L,R]中的前K(K<=500,000)大的连续子序列的和,其中-1000<=Ai<=1000。思路本来想写一道水题提升信心,结果没开long long调一年!枚举一段连续子序列的末尾,用ST表可以求出长度在[L,R]中的和最大的答案与开头的位置。这相当于找满足条件的最小的sum[y]。然后我们考虑如何取k个。好像可以原创 2018-03-28 15:12:33 · 264 阅读 · 0 评论 -
BZOJ 3784: 树上的路径(点分治+ST表+堆堆堆)
题目喵述权限门题目大意:给一棵树,有N个点,有边权。所有无向路径中,请你输出前M大的。N<=50000 M<=Min(300000,n*(n-1) /2)思路树上超级钢琴。(拖延症的结果就是现在才写这题)学了一种点分治的套路,在做点分治的时候求出整棵树的dfs序。可以发现,每个点在dfs序列中出现不超过log次。我们不妨称其为点分治序。然后类比超级钢琴,将序列转换到树上。强制路径过分治中心,然后每原创 2018-04-19 07:08:05 · 433 阅读 · 0 评论