
倍增
KsCla
这个作者很懒,什么都没留下…
展开
-
CSP2019Day2T3 洛谷P5666:树的重心 (树上倍增)
题目传送门:https://www.luogu.org/problem/P5666很早以前就觉得,凡是考树的重心相关的题,到最后都变成一道模拟题。树的重心有许多优秀的性质,比如:结论一:记f(node)表示以node为根的最大子树的大小。从无根树上的任意一个点x出发,向相邻的点走一步。假设某个点y的f值比x的小,那么x向y走就相当于向树的重心移动了一步。假设不存在这样的y,那么x就是重心。...原创 2019-11-24 00:59:31 · 980 阅读 · 0 评论 -
洛谷P4155:[SCOI2015]国旗计划 (贪心+倍增)
题目传送门:https://www.luogu.org/problemnew/show/P4155题目分析:考模拟赛的时候以为是个DP,结果一直没想出来,写了个O(n2)O(n2)O(n^2)的区间DP还错了。昨晚睡觉前想了想,发现贪心就可以了。因为区间之间没有包含关系,所以将其按左端点递增排序后,右端点必定单调右移,每一次选取尽可能靠右的和当前区间有交的区间作为下一个即可。很明显任何一个...原创 2018-03-19 08:52:56 · 1159 阅读 · 0 评论 -
BZOJ2286:[Sdoi2011]消耗战 (虚树+树形DP+倍增)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2286题目分析:把虚树建出来,虚树上边的权值=对应链上的最小值。然后如果某个点是关键点,就一定要割掉其父边;否则可以选择割父边,也可以选择让其儿子自行处理。时间复杂度O((n+∑k)log(n))O((n+∑k)log(n))O((n+\sum{k})\log(n))。我发现...原创 2018-03-01 20:37:08 · 381 阅读 · 0 评论 -
BZOJ3572:[Hnoi2014]世界树 (虚树+树形DP+倍增)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3572题目分析:最近跟着tututu入坑虚树,就做了这道题。虚树教程:https://www.cnblogs.com/zzqsblog/p/5560645.html虚树大概的思想就是:如果每次询问给出一个点集,在原先的树上跑一遍求答案代价太大,我们可以尝试着构造一个棵小一点...原创 2018-03-01 14:32:27 · 420 阅读 · 0 评论 -
Codeforces 809E:Surprise me! (莫比乌斯反演+虚树)
题目传送门:http://codeforces.com/contest/809/problem/E题目分析:一道套路到极点的题目。公式推导直接见https://blog.sengxian.com/solutions/cf-809e,我懒得打了QAQ。最后推出:ans=∑T=1n∑d|Tdμ(Td)ϕ(d)∑d|ai∑d|ajϕ(ai)ϕ(aj)dis(i,j)ans=∑T=1n...原创 2018-03-07 21:11:35 · 619 阅读 · 0 评论 -
BZOJ3992:[SDOI2015]序列统计 (NTT+倍增+DP)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3992题目分析:“如果一道题的模数是998开头的那个费马素数,那它多半不是NTT。如果模数是1004开头的,那它基本上就是NTT了。”——tututu我们可以将长度为n的这个序列分成两段,分别算出前半段和后半段乘积模m等于0~m-1的方案数,记进f和g数组。然后令f[i]∗g[...原创 2018-02-12 22:41:08 · 483 阅读 · 0 评论 -
BZOJ3991:[SDOI2015]寻宝游戏 (DFS序+LCA)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3991题目分析:一开始看到这题完全没头绪,感觉应该很简单然而就是不会。过了一会儿我忽然间记起来,某个点在当前虚树上的父亲就等于它与DFS序中前驱后继的LCA深度最大的那个。然后就可以用一波分类讨论,看一下它是不是当前点集中某两个点的LCA,以及它是不是当前虚树的叶子节点/根节点之类...原创 2018-03-06 21:06:54 · 374 阅读 · 0 评论 -
BZOJ4556:[Tjoi2016&Heoi2016]字符串 (后缀自动机+树上倍增+二分答案+线段树合并)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4556题目分析:我发现我对线段树合并一无所知QAQ。先讲一种简单的做法:我们可以将后缀数组建出来,对于每个询问二分一个答案mid。然后从Rank[c]往上下两个方向跳,找到一个区间[L,R],使得这个区间的后缀和c开头的后缀的LCP大于等于mid。那么如果sa[L]~sa[R]中有落在[a,原创 2017-11-24 16:39:40 · 707 阅读 · 0 评论 -
Tyvj4620:一方的loli量产计画 (快速幂)
前言:为什么我要刷这道水题呢?因为我一看见题面就被吸引然后点进来了。 我也想量产loli啊啊啊题目传送门:http://tyvj.cn/p/4620题目分析:如果某个时刻有一个LO跑掉了,那么LO的总数就会是k的倍数,就再也不会有LO跑掉了。由于这个时刻不会超过k,我们将前k个时刻LO的数量模k的值暴力计算,并同时维护其模p的值,然后剩下的部分快速幂即可。CODE:#include<iostrea原创 2017-10-23 07:45:00 · 349 阅读 · 0 评论 -
Tyvj4876:骰子游戏 ((FFT/NTT)+倍增+DP)
题目传送门:http://tyvj.cn/p/4879题目分析:其实这题我并没有AC(因为我没写过NTT),只是觉得这还是道不错的DP,就记录一下。骗访问量 读完题之后可以发现第一段话是废话,令x减去小A手中y点数的个数,问题就变成了:有n个人,每个人有m个骰子,所有点数为y的骰子的个数大于等于x的方案有多少种?考虑到一个人手中的骰子为{1,1,2}和{1,2,1}视作同一种方案,不妨先预处理出一原创 2017-09-30 14:51:16 · 625 阅读 · 0 评论 -
洛谷P1081:开车旅行 (Treap+倍增)
题目传送门:https://www.luogu.org/problem/show?pid=1081题目分析:这题的两个问其实是差不多的。第一问给出了X0,我们枚举起点s,就相当于变成了n个第二类询问(s,X0)(1<=s<=n)(s,X0)(1<=s<=n)。于是现在原问题变成了:给出(s,x),如何快速求s开始往下走不超过x距离时,A,B各走的距离?然后用数据结构预处理出A,B到达每一个点之后会走原创 2017-09-29 21:29:24 · 437 阅读 · 3 评论 -
2017"百度之星"程序设计大赛-初赛(A) 比赛总结
T1:小C的倍数问题(hdu6108)题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6108题目分析:最水的一题,考场上最多人AC。题目是要我们求有多少个B使得 a0Pk+a1Pk−1+……+ak−1P+ak=x1Ba_0P^k+a_1P^{k-1}+……+a_{k-1}P+a_k=x_1B 与 a0+a1+……ak−1+ak=x2Ba_0+a原创 2017-08-17 22:25:00 · 1042 阅读 · 0 评论 -
BZOJ3676:[Apio2014]回文串 (Manacher+后缀自动机+树上倍增)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3676题目分析:找后缀自动机练习题的时候看到这题的,结果想不出怎么用SAM。看了黄学长的博客才知道要先写个manacher,再在parent树上玩倍增。后来又听说这题是裸的回文树……我还不知道什么是回文树啊,我也不是擅长现学现卖的类型,于是就写了这个SB的O(nlog(n))的方法。 首先原创 2017-07-07 14:01:02 · 594 阅读 · 0 评论