倍增
文章平均质量分 64
。十二。
这个作者很懒,什么都没留下…
展开
-
【Ybtoj】【NOIP2021 模拟赛 B 组 Day8】D. 城市网络【倍增】
解题思路gi,jg_{i,j}gi,j表示从 i 节点往上购买 2j2^j2j 次到达的节点,如果我们知道了 gi,0g_{i,0}gi,0就可以求出所有了(倍增的精髓)gi,0g_{i,0}gi,0 就是求 i 节点从下往上第一个大于 aia_iai 的节点,这也可以用倍增来完成,用一个 maxni,jmaxn_{i,j}maxni,j来维护从 i 节点往上2j2^j2j步这中的最大值,若maxni,j<aimaxn_{i,j}<a_imaxni,j<ai...原创 2021-11-13 12:00:50 · 640 阅读 · 0 评论 -
(纪中)3523. JIH的玩偶【倍增】
解题思路其实刚看完题还是能想到倍增的,但是因为没推出样例就没打。。啊这。。题目有两个很坑的点,“重要度大的客户必须在重要度小的客户后面”,意思是重要度大的客户的深度必须比重要度小的客户的深度小,所以我们求的重要程度相差最大的两个客户,大的要比小的的深度小。从X到根走k步中如果整段路上的点的重要度一直是递减的就是不合法的,输出0,若有任意一小段没有递减就是合法的。OK,成功跳坑。回到解题,我们设数组 f_{i,j} 表示第 i 个节点往上跳 2^j 次到达的父亲, minn_{i,j...原创 2021-07-14 10:16:27 · 92 阅读 · 1 评论 -
【Ybtoj 第18章例6】次小生成树【倍增问题】
解题思路博客推推》》第一篇的讲解很详细,然后我的代码比较简单QAQ代码#include<iostream>#include<cstdio>#include<iomanip>#include<cstring>#include<algorithm>#include<cmath>#include<queue>#define ll long longusing namespace std;co...原创 2021-06-12 09:45:06 · 61 阅读 · 0 评论 -
【Ybtoj 第18章例5】运输计划【倍增问题】
解题思路由于这是一篇补得博客,很多当时的细节都忘了,QAQSO。。博客推推》》第三篇的代码比较喜欢,然后可以看其他篇的思路代码#include<iostream>#include<cstdio>#include<iomanip>#include<cstring>#include<algorithm>#include<cmath>#include<queue>using namespace...原创 2021-06-12 09:36:41 · 129 阅读 · 0 评论 -
【Ybtoj 第18章例4】货车运输【倍增问题】
解题思路首先,我们要求出最大生成树。这样做的原因是司机为了让自己能过通过载运更多的货物,显然会选择边权大的两边,由此可以推出我们要求的是最大生成树,去除原来的图中边权比较小的那些边。得到了这样一个树之后,我们便考虑如何求出两个节点之间最小边权的最大值(即为题中的最大载重),因为这两点之间的路径是唯一的,我们只需要找出这条路径便可以得到答案。我们可以通过LCA来做到这一点。这一步是LCA一个经典运用:静态树上链的权值查询问题。具体做法是在求出f数组的同时顺便求出一个dis数组,disi,jd...原创 2021-06-03 19:08:50 · 195 阅读 · 0 评论 -
【Ybtoj 第18章例2】开车旅行【倍增问题】
解题思路预处理最小点和次小点:我们用双向链表。l[i]表示在原序列中第i个点排序后左边的点,r[i]表示在原序列中第i个点排序后右边的点。先不管方向,将所有城市排序之后,它的最小和次小点一定在l[i],l[l[i]],r[i],r[r[i]]l[i],l[l[i]],r[i],r[r[i]]l[i],l[l[i]],r[i],r[r[i]]的位置,所以说如果排序我们的处理会方便很多。首先我们记下每个城市排序之后的位置,然后从第一个城市开始向l[i],l[l[i]],r[i],r[r[...原创 2021-05-26 18:12:15 · 189 阅读 · 1 评论 -
【Ybtoj 第18章例1】查找编号【倍增问题】
解题思路对于一个存在答案的区间[l,r][l,r][l,r],我们考虑缩小答案所在区间范围,我们找到最大的i使得2i<=n2^i<=n2i<=n,若aans+2i<qa_{ans+2^i}<qaans+2i<q,那么答案一定在子区间[ans+2i+1,R][ans+2^i+1,R][ans+2i+1,R]中,则ans=z+2ians=z+2^ians=z+2i,否则答案在子区间[ans+1,ans+2i][ans+1,ans+2^i][ans+1,ans+...原创 2021-05-26 17:03:38 · 137 阅读 · 0 评论 -
【洛谷 1613】 跑路【倍增】
题目描述小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:006:006:00之前到达公司,否则这个月工资清零。可是小A偏偏又有赖床的坏毛病。于是为了保住自己的工资,小A买了一个十分牛B的空间跑路器,每秒钟可以跑2k2^k2k千米(k是任意自然数)。当然,这个机器是用longintlongintlongint存的,所以总跑路长度不能超过maxlongintmaxlongintmaxlongint千米。小A的家到公司的路可以看做一个有向图,小A家为点111,公司为点n,每条边长度均为一千米。小A想每原创 2020-09-05 12:17:36 · 368 阅读 · 0 评论 -
【洛谷 3379】最近公共祖先【LCA】【倍增】
题目描述如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。输入格式第一行包含三个正整数 N,M,SN,M,SN,M,S,分别表示树的结点个数、询问的个数和树根结点的序号。接下来 N−1N-1N−1 行每行包含两个正整数 x,yx, yx,y,表示 x 结点和 y 结点之间有一条直接连接的边(数据保证可以构成树)。接下来 MMM 行每行包含两个正整数 a,ba, ba,b,表示询问 a 结点和 b 结点的最近公共祖先。输出格式输出包含 M 行,每行包含一个正整数,依次为每一个询问的原创 2020-08-22 20:42:03 · 446 阅读 · 0 评论